GIT并行提交和多人提交总结

1、基于同一个parent的两笔并行提交
在这里插入图片描述
此时可以分别提交并且review,如果其中一笔已经review过了并且入库,那么此时另外一笔提交需要执行rebase操作然后再 --amend提交。

2、如果是递进的两笔提交
在这里插入图片描述
递进的并行提交,即C2和C3都是已经提交到gerrit上去review了。后面由于C2在review时被打回来,这个时候可以进行如下操作。
第一步本地仓库在做好备份之后,在当前的模块中执行"repo sync . ",这个会把当前的git状态和远程仓库最新的提交同步。接下来是需要在gerrit上把C2这笔patch通过Cherry Pick命令,把C2这笔提交同步到本地,然后做对应的review的修改,完了之后执行commit --amend以补丁方式提交代码,然后重新通过push命令把这提代码推送到gerrit上再次接受review。
第二步则是继续Cherry Pick C3的代码到本地,如果和C2的修改有冲突的地方,就需要手动解冲突,然后再提交动作。
Cherry Pick的地方如下:
在这里插入图片描述3、多人操作同一份代码,如何解冲突。
比如两个人同时在往服务器提交代码,首先需要在Gerrit上接受review。此时这两个人都是基于远程仓库最新的状态提交的代码,如下:
在这里插入图片描述
接下来,C3首先通过review,然后就subimt合入了远程仓库的分支中,这个时候就会出现如下的情况:
在这里插入图片描述
C2的这笔提交,依然是不能直接顺利地入库了。这里也分两种情况:
第一种情况是已知明确C2和C3没有冲突,那么在C2要入库的时候,可以执行rebase操作,变基处理,直接添加到C3的后面去。
第二种情况是不明确C2和C3有没有冲突,或者很大可能存在冲突,那么就需要执行上面提到的Cherry Pick操作了。首先repo sync . 更新最新的远程仓库状态,这个时候其实就会把C3更新下来,接着Cherry Pick C2这笔提交,存在冲突手动解冲突,然后再commit --amend提交,这样指向关系就清晰了,如下:
在这里插入图片描述
这样,在C2通过review之后,就可以顺利入库了!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值