2011-08-31 @ taobaogit
若是在Gerrit上出現下面的狀況:
---- C
/
---A----- B
A : 是master上一次穩定的版本.
B : A以後發現了bug被P1緊急修復的版本, 已經過review並提交到master.
C : P2準備合併到master上的新增功能, 此時Gerrit不會容許C的提交.
解決辦法是:
# 將本地master 分支與Gerrit的master進行同步, git pull origin master;
# checkout C 到本地一個分支上, git fetch origin refs/changes/${id} && git checkout FETCH_HEAD ;
# 令C 從 A rebase 到 B上, git rebase master;
## 解決可能的衝突後, git add . && git rebase --continue
# 與master合併
## git show 複製 commit SHA值
## git checkout master && git merge ${SHA}
# 修改最近的commit msg, 增長C的change-id, git commit --amend;
# 更新C, git push origin HEAD:refs/for/master;
# 如今能夠在Gerrit提交C到Master.