git 常用命令:
平时用到就记下来的
撤销某次本地提交:git reset " 提交id" git reset (撤销所有本地提交)
删除提交:git reset --hard “”
删除某一次提交:git revert “”
提交删除的文件:git add -A
修改已提交:git commit --amend
无法repo:先git checkout ./ git clean -df 再 git pull
查询所有:grep “dsda” * -R
查看log修改:\git log –-grep=”搜索关键字”
查找关键字:find . -name "*.mk" | xargs grep " "
Source wind/tiils/scripts/quick_build.sh jgrep “”
查看本地修改:git diff "id" git diff (查看所有修改)
创建并切换分支:repo start stable --all
切换分支:repo checkout master
查看分支:repo branches
删除已经合并的分支:repo prune
删除指定分支:repo abandon
合并多分支:将topic分支合并到master::repo forall –p –c git merge topic
查看repo的版本号:repo version
用于自身的更新:repo selfupdate
上传代码到远端服务器:repo upload
显示修改状态:repo status
显示项目差异:repo diff
内容查找:repo grep
显示manifest 文件内容:repo manifest
查看修改的 query_custom_file_status
查看指令 Source quick_build.sh
查看root权限:adb remount
删除文件:rm –rf …
查看系统某个值命令:adb shell getprop “”
看当前界面:adb sehll 然后 :dumpsys activity | grep mFocusedActivity
USB连接上手机,手机需要其他操作;然后运行ADB工具;输入不同的命令即可抓取对应的LOG信息。
抓取radio LOG信息命令:
adb logcat -b radio -v time >log_radio.txt
抓取main LOG信息命令:
adb logcat -b main -v time >log_main.txt
抓取event LOG信息命令:
adb logcat -b events-v time >log_events.txt
输入这样的命令 Enter后LOG信息就自动生成了,log_radio.txt log_main.txt log_events.txt会在当前ADB运行的目录下生成。
编译命令:make PRODUCT-sdk-sdk
单独编译: . build/envsetuo.sh
编译指定目录的模块:mmm packages/app/Contacts/
git log的筛选
git log -2 -p 显示最近两次commit的log 和 diff
git log --author="Author Name" 筛选特定作者的log
git log --since="2012-2-23" --before="2012-2-24" 筛选时间段
git log --grep="key word" 在commit 的message中查找关键字
git log branch --not master 查看在branch上的,但不在master上的记录。
git log -S"func_name" 查找某个字符出现,或者移出的commit。 比如可以查找一个函数是什么时候添加,或者删除的。
git show sha1 这个sha1是每个commit的sha1,这样显示某个commit的完全信息,包括diff
在git diff中
git diff目的是比较两个commit之间的区别。
git diff A B 和 git diff A..B 是一样的,就是显示这两个之间的区别。
git diff A...B 和 git diff $(git-merge-base A B) B一样。 就是显示 在B这个分支上,做了什么改动。
有时候这个命令是,git merge-base A B
1. 假如编辑到了某个版本,发现某个功能不起作用了,或者有bug了。但是自己知道之前的某个版本是好的。
git bisect start
git bisect bad 现在这个版本是坏的
git bisect good good_commit good_commit这个版本是好的
接下来编译,测试。 如果是好的
git bisect good
如果还是不好
git bisect bad
这样git都会给你输出某个中间的版本让你继续测试。
找到了错误,用
git bisect reset 恢复到原先的版本。
我在修改2.6.36内核模块时,发现了kmem_cache_create的函数参数有所变化,dtor这个参数被删掉了。
但是网上也搜不到相关的原因和变化。我就想到了git中是不是有记录。在高手的指点下,下面的命令可以
git log --grep='dtor' mm/slab.c
创建文件:mkdir remote.git
创建远程仓库:git init –bare –shared
查看下属性和远程关联情况:git config –list
做一次简单的提交
$ touch README
$ git add README
$ git commit -m "Init Version"
将本地仓库推送到远程
$ git push -u origin master(origin远程主机名)(master本地分支名)
再次查看分支结构
$ git branch -a(可以看到本地master已经关联到了远程)
master
remotes/origin/master
查看与远程分支的关联情况
$ git remote -v(fetch和push的地址)
origin d:/My Files/MyBackUp/OSChina/project/../remote.git/ (fetch)
origin d:/My Files/MyBackUp/OSChina/project/../remote.git/ (push)
Repo forall –c “git checkout .” 对repo下所有的git工程,把本地修改都撤消
1.source wind/tools/quick_build.sh
2.然后执行wind_lunch 项目名 编译类型 编译动作 ,该动作相当于android原生的lunch,只是它会把custom_files拷贝到android目录
比如 wind_lunch E163 eng new (该部分参数不分先后顺序)
该处的编译动作,指的是拷贝哪部分的代码出去,这是为了你后续自由编译做准备动作
new指的是拷贝全部差异化代码,kernel表示拷贝kernel部分代码,pl表示preloader部分代码,lk表示bootloader代码
3.自由编译代码,比如make -j8 ,make snod,make bootimage,mmm, mm , mma,