git常用命令

来源:互联网 发布:阿里巴巴商机助理 mac 编辑:程序博客网 时间:2024/06/05 07:38

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

  输入这样的命令 EnterLOG信息就自动生成了,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   显示最近两次commitlog 和 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是每个commitsha1,这样显示某个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(fetchpush的地址)

origin d:/My Files/MyBackUp/OSChina/project/../remote.git/ (fetch)

origin d:/My Files/MyBackUp/OSChina/project/../remote.git/ (push)

 

Repo forall 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,

0 0
原创粉丝点击