我們在我們的項目中使用Gerrit,並且始終在任何傳入的新更改的基礎上重新規劃本地更改,從而保持線性歷史記錄。如何避免將我的更改合併到Gerrit中的主分支後重復提交
我已經提交到我的本地主分支我的變化後,我推他們到遠程:
git push origin HEAD:refs/for/master
這爲我犯下格里特審查。當我運行git status
時,它說我的本地分支在一次提交之前位於origin/master之前,因爲我的新提交尚未合併到遠程主分支中。請記住,其他提交者可能還有其他提交者未提交合併到遠程主分支的提交。這意味着我不能在我們之前重新定義我的提交,因爲它們不在遠程mater分支中。
當我的提交已合併到遠程主分支,在任何其他提交之前或之後,並且在我運行git fetch origin
之後,運行git status
說我的本地主分支和遠程已經發生分離,因爲本地版本我的提交(它的sha-1)與遠程版本不同。基本上我的提交是在不同的sha-1下複製的。然後我必須運行git reset --hard HEAD~1
來刪除我的提交的本地版本,然後git merge origin/master
來快速轉發我的本地分支以包含來自遠程主分支的新更改。有什麼辦法可以避免這種情況?
如果我rebase,我的提交仍將被複制。 –
這是因爲你把它合併到gerrit上。如果它太晚了(你已經合併它),你必須做你提到的問題。我的答案是爲了避免這種情況下的下一次提交。 – Flows
將我的提交推送到遠程後,重新綁定的要點是什麼? –