Git与Gerrit使用说明

iamjiyu 2017-11-10

代码提交流程为: 开发人员提交代码到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这里

Git与Gerrit使用说明

使用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/

http://git.oschina.net/progit/index.html

相关推荐