问题出现原因:开发在上周新拉的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 clonessh://git@gitlab.xiaopeng.local:10022/navigation/Montecarlo.git
2.变更gitlab名称:git remote rename origin old-origin
3.创建新的gitlab仓库远端:git remote add origin ssh://git@gitlab.xiaopeng.local:10022/navigation/xp_montecarlo.git
4.把所有old-origin远端分支同步到本地:
git checkout -b D20_SOP2_Release_RC old-origin/D20_SOP2_Release_RC
git checkout -b PT1_Release_RC1 old-origin/PT1_Release_RC1
git checkout -b PT2_Release_RC1 old-origin/PT2_Release_RC1
git checkout -b SOP_Release_RC1 old-origin/SOP_Release_RC1
git checkout -b Pytools old-origin/Pytools
git checkout -b config old-origin/config
git checkout -b feature-dianping old-origin/feature-dianping
git checkout -b feature-eventbus-optimization old-origin/feature-eventbus-optimization
git checkout -b feature-model-refactor old-origin/feature-model-refactor
git checkout -b D20_SOP2_Release_RC old-origin/D20_SOP2_Release_RC
5.Push所有的分支及代码到远端新的仓库:
git push -u origin --all
6.Push 所有的Tag带远端新的仓库:
git push -u origin --tags
7.在Gerrit上创建新的远端去同步新的gitllab仓库:
git clone --bare ssh://git@gitlab.xiaopeng.local:10022/navigation/xp_montecarlo.git
网友评论