一、问题场景
gerrit merge冲突“git submit including parents”根本原因commit相互依赖提交。是用户push了commit A,在commit A基础上提交了commit B,在commit B基础上提交了commit C,如下图(上)。这种场景大多出现在多人同时在往一个分支上提交代码,用户提交完后,没有及时审核并合并代码;其他用户在之后提交了代码,并进行了合并,用户早些时候提交的代码有冲突。用户此时在Gerrit上abandon了commit B,在B基础上继续提交了commit C,则Gerrit会出现git submit including parents,如下图(下)。
二、解决方式
1.查看所有分支
git branch -a
2、从远程分支上重新创建一个新的工作分支:git fetch origin master(远程分支):new_work(新分支)
$ git fetch origin master:newbranch
3、切换到新的工作分支:git checkout newbranch
$ git checkout newbranch
4.将commit B 移到新分支上(gerrit 页面右上角download中直接复制cherry-pich命令):git fetch ssh://xxx xxx && git cherry-pich xxx
$ git fetch ssh://admin@192.168.255.169:29418/testmygit refs/changes/05/605/1 && git cherry-pick FETCH_HEAD
5.正常提交代码:
git push origin HEAD:refs/for/mater(需要提交到的分支)
6.刷新gerrit,重新做code review