Gitlab rebase之后Gerrit出现冲突无法正常提交的解决方法
问题出现原因:开发在上周新拉的branch由于代码跟主干有差异,需要rebase到主干,然后在开发。
1.首先由于gerrit上的同步代码机制的原因,导致无法在gerrit上直接操作,因此我们想到先在gitlab做rebase之后在同步到gerrit,但是没有考虑到gerrit这个时候还有提交没有submit,导致rebase之后gerrit无法做code review。(期间尝试了google无数种方法,操作数据库删除对应的commit id所有提交,然后更新本地cache,远程abandoned 该提交都无法实现)
暴力快速解决方式:
1.首先创建新的gitlab代码库,把以前的gitlab代码库先git clone到本地:git clone url
2.变更gitlab名称:git remote rename origin old-origin
3.创建新的gitlab仓库远端:git remote add origin url
4.把所有old-origin远端分支同步到本地:
git checkout -b config old-origin/config
git checkout -b feature-dianping old-origin/feature-dianping
5.Push所有的分支及代码到远端新的仓库:
git push -u origin --all
6.Push 所有的Tag带远端新的仓库:
git push -u origin --tags
7.在Gerrit上创建新的远端去同步新的gitllab仓库:
git clone --bare url