Gitlab rebase之后Gerrit出現(xiàn)沖突無法正常提交的解決方法
問題出現(xiàn)原因:開發(fā)在上周新拉的branch由于代碼跟主干有差異,需要rebase到主干琼梆,然后在開發(fā)。
1.首先由于gerrit上的同步代碼機制的原因窿吩,導(dǎo)致無法在gerrit上直接操作茎杂,因此我們想到先在gitlab做rebase之后在同步到gerrit,但是沒有考慮到gerrit這個時候還有提交沒有submit纫雁,導(dǎo)致rebase之后gerrit無法做code review煌往。(期間嘗試了google無數(shù)種方法,操作數(shù)據(jù)庫刪除對應(yīng)的commit id所有提交,然后更新本地cache刽脖,遠程abandoned 該提交都無法實現(xiàn))
暴力快速解決方式:
1.首先創(chuàng)建新的gitlab代碼庫羞海,把以前的gitlab代碼庫先git clone到本地:git clone url
2.變更gitlab名稱:git remote rename origin old-origin
3.創(chuàng)建新的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上創(chuàng)建新的遠端去同步新的gitllab倉庫:
git clone --bare url