使用gerrit提交、调试、多人合作方式

 

一、gerrit与gitlab的区别

网上找的专业分析

https://zhangmengpl.gitbooks.io/gitlab-guide/content/gitlabvsgerrit.html

二、使用gerrit简便工作流程

1、clone

使用gerrit可以先clone master分支,然后在本地checkout一份自己做开发的分支my_branch,如果在阿里云和ucloud上clone master分支需要加上host全称

git clone ssh://pengzhang@gerrit.mobvoi.com:29418/vertical_search/mobvoi && scp -p -P 29418 pengzhang@gerrit.mobvoi.com:hooks/commit-msg mobvoi/.git/hooks/

2、提交

然后在my_branch上做修改测试完成之后提交push到master

提交时注意

因为gerrit是根据change-id来判断code review的,所以提交之前要看好当前的change-id,如果是你想提交到的change-id,直接

1.git add -u

2.git commit --amend

3.git push origin HEAD:refs/for/master

备注:第三部可能遇到push失败情况,是因为当前的change id已经close了,需要重新生成change  id push

git reflog

git reset {commit id}

git add

git commit -m “{comment}”

git push origin HEAD:refs/for/master

 

 

如果不是想要的(一般新建的分支都是需要重新生成change-id)就新起一个change-id ,

 

 

1.git add -u

2.git commit -m “{comments}”    #这步会生成一个新的change-id

3.git log           #查看是否有新生成change-id

4.git push origin HEAD:refs/for/master

 

 

3、持续调试

 

 

在开发过程中可能需要临时提交并在其他机器上下载下来编译测试的情况

屏幕右上角有个download,第一个就是把当前的code review修改下载下来,无论在哪个分支都可以。

三、gerrit小技巧

1、gerrit也可以不经过code review直接push,这个需要有最高权限才可以,这种情况一般在一个新项目需要不断快速迭代时使用。

git push origin HEAD:refs/for/master%submit

文章链接

2、撤销几乎任何操作

3、git查看未push的文件,git log --name-status

4、每个功能的修改都checkout 一个新分支,这样在这一个分支上可以用--amend一直保证change id不变,checkout到其他分支创建新的change id也不会修改这个change id

5、如果想对其他的change id做修改,需要先checkout出来那个change id然后做修改(用第三个持续调试),再用--amend继续commit并push

6、merge时出现conflict(冲突)时需要用rebase解决冲突,

    git rebase origin/master   //不能用本地的master,自己尝试使用本地的master时,在最后rebase continue时就会出错
    [fix conflict]
    git rebase continue

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值