Git与Gerrit使用说明
代码提交流程为: 开发人员提交代码到gerrit等待入库前检查 ->hudson发现评审请求,触发构建,并将构建结果返回至gerrit进行verify评分 ->hudson验证通过 ->code review ->code review通过 ->开发人员提交代码入库
如果在hudson验证或者code review 中的任意一步被驳回(即gerrit上的CR V中的任意一列打上了×),本次代码提交均无效,不能进入代码库
windows使用者:
1、在客户端机器(你的机器)上安装TortoiseGit
2、安装好后使用git bash
ssh-keygen -t rsa -P ''(单引号之间不写密码即为空密码)
复制.ssh目录(在你的家目录下)下的id_rsa.pub中的内容
粘贴到gerrit
个人设置->settings->SSH public keys这里
使用http协议的时候只需要在gerrit上 个人设置的HTTP Password那里生成一个密码串作为密码就可以了
3、clone project到本地即可
如:
git clone ssh://[email protected]:29418/test
此处的xxx为你自己的名字如zhangsan, test是一个project的名字,正式使用时你要根据实际情况进行相应替换
克隆下来后默认在master分支,可使用
git branch -a可以看到所有的分支(包含本地分支和远程分支, 带*的分支是你当前所处的本地分支)
git branch -r 可列出远程仓库的全部分支
使用git checkout -b BRANCH_NAME 切换到 BRANCH_NAME分支(此处的BRANCH_NAME要替换成一个分支的名字,建议你使用与origin一致的分支名字)
接下来你就可以正常编写代码了,
提交时git add . 保存在暂存区
git commit -m "comments" 真正提交,此时代码还在你的本地
push到gerrit, git push origin HEAD:refs/for/dev(把当前分支的commit 推送到origin的dev分支上,等待代码审核)
首次提交时会遇到没有change id推送失败的情况
此时只需要根据失败的提示, 执行一下
gitdir=$(git rev-parse --git-dir); scp -p -P 29418 [email protected]:hooks/commit-msg ${gitdir}/hooks/ (这里的XXX是你的名字,从git给你的提示信息中复制下来即可)
然后git commit --amend 即可push成功
推送到gerrit上的代码如果正常通过了验证和审核,请你自己点击submit 按钮完成代码合并入库
如果代码被驳回
需要在本地接着修改后再次提交
此处尤其要注意,如果是修复前一次提交,要使用git commit --amend进行(gerrit上还是你上一次的代码审核请求,会多一个patch set)
不要使用git commit -m "xxx"(gerrit上会新创建一个代码审核请求)
获取远程代码更新: git pull origin dev(抓取远程代码库的dev分支提交更新, 并合并到当前本地分支)
查看代码提交历史:gitk
始终要记得你处在哪个分支上
更多git的基本使用参考
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/