一、git使用前的配置:
git config remote.origin.push refs/heads/*:refs/for/* (修改目的地目录,以让gerrit系统检测到提交内容)
git config --global user.name $user (配置提交者用户名,需与web界面登录用户名一致)
git config --global user.email $emailaddress (配置提交者邮箱,需与web界面注册的邮箱一致)
scp -p -P 29418 $user@xx.xx.xx.xx:hooks/commit-msg .git/hooks/ (复制钩子文件确保重复提交时CL号码不变)
git config remote.review.pushurl ssh://$YourName@xx.xx.xx.xx:xxxxx/test_only
git config remote.review.push refs/heads/*:refs/for/*
二、git提交code到git server for review:
在 test_only 目录下修改好code后,执行以下命令
git add -i (以互动模式选择需要提交的文件)
git commit –m “$discription” (首次提交到本地代码库并添加提交描述)
git commit --amend (二次提交时使用)
git push review (向gerrit reviewers提交 review 请求)
- 如果review不通过,会收到通知mail,返回修改重新提交review
- 如果review 通过,由reviewer负责最终的approve & submit ,完成入库动作
三、git 提交失败请检查以下几点:
- 用git status查看是否有多个提交
- 查看是否缺失sign-off-by信息
- 查看是否缺失change-ID
- 查看是否有冲突
四、git 其他有用的命令:
git log (查看提交信息)
git pull (相当于fetch+merge)
git fetch
git merge
Gerrit 流程图
请参考:http://source.android.com/source/life-of-a-patch.html
五、git的一些其他使用
有些某文件的修改,只想局部提交,则可以使用git add -p 文件名,接着根据终端提示进行操作。这时默认的编辑器是nano,平时用vim更熟练,那就可以修改git默认的编辑器nano为vim,具体方法如下:
git默认的编辑器是nano,使用起来不易操作,下面介绍两种方法将git默认的编辑器修改为vim.
-
git config --global core.editor vim
- .git/config文件,在core中添加 editor=vim即可
git status看本地改动的差异时,有很多改动不需要提交到server,却被列举出来,
1. 对于untrack的文件,我们可以创建.gitignore文件。
对于已经track的文件,可以这样做:
git update-index --assume-unchanged <files>
这样,即使已经更改了文件,用git status也不会看见文件已经更改。
2. 但在使用时需要小心,取消这种设定可以使用:
git update-index --no-assume-unchanged <files>