解决Gerrit里的cannot merge问题

在iOS里使用Gerrit,已经好几次碰到cannot merge问题了,每次都要花不少功夫去解决,很是烦人!为防止以后再次像个stupid入坑,so赶快记下笔记谨记教训!

1. 出现cannot merge的场景

当提交了本次的修改文件后,准备在Gerrit上review时,发现cannot merge, 所以就立即在本地git log,查看本地提交记录,并与gerrit上的提交记录对比,发现本地缺少两次记录,还是自己提交的记录(一脸懵逼),不知道为什么会出现这种情况。

2.本次解决的方法

  1. 如果git status ,发现由于你的不当操作,已经有了confilct文件,先解决confilct文件。
  2. 首先记下当前不能merge 的commitid 这里假设为ID1,然后强行拉取缺少的记录
    git pull --rebase 此时使用git log,会发现本地记录已经与Gerrit同步,记下最新的 commitid 假设为ID2
  3. 然后使用如下命令,回到cannot merge的版本
    git reset --hard ID1 这时又回到了cannot merge版本,然后再进行一次特别的版本回退git reset --soft ID2,这个命令时只回退commitid,不回退写过的代码,所以此时你的代码很完整,到这里,已经解决cannot merge的问题了
  4. 正常提交你的代码
git add .
//  commit 并且进行代码签名
git commit --amend -s -m "xxxx"
// push到远程当前开发分支的代码
git push origin developer

代码已经可以正常submitl了~~

你可能感兴趣的:(解决Gerrit里的cannot merge问题)