2016-11-22 80 views
0

我正在使用gitgerrit進行代碼評論。在使用唯一的change id推送更改後,gerrit儀表板出現合併衝突問題。所以我再次提取代碼並解決合併衝突,然後決定修改同一更改ID下的更改,但git不允許這樣做。如果有merge conflict,則不能完成Amend。你必須做一個單獨的提交。 那麼有什麼辦法可以在同一change id下更新我的代碼嗎?合併衝突後,在同一個更改ID下推送

回答

2

我認爲你用「Commit-Id」(Git)讓「Change-Id」(Gerrit)感到困惑。當您解決了衝突並修改了原始提交時,(當然)生成了新的提交(新提交ID)。你可以(實際上,你需要)保持相同的變化-ID在提交信息的最後一行,例如像:

更改ID:Id65100bb3841c73bb9dd2d2d6a69c77a5936681a

當你把這個承諾格里特,它會使用這一行來知道這個提交是對原始提交的修改,並將它作爲新的補丁集添加到原始更改中。

查看更多信息here

+0

我知道commit id和change id是不同的,它只是我習慣了bitbucket和github,但是gerrit是當前env im工作所必需的,所以修改所有的時間有點緊張:) 。感謝您的鏈接,它幫助了很多。 – optimus

+0

我知道Gerrit的「緊張感」有點不同,但只要你習慣了,你會感到很舒服。 –

+0

使用Gerrit UI中顯示的Change-Id是解決這個問題的關鍵 - 謝謝! – Aidan

0

然後決定當你修改在Git中提交修改相同的變化ID

下的變化,無論是通過git commit --amend,通過Gerritt,或其他一些工具,你創建一個新的提交。舊的提交已被重寫,不再是您的分支的一部分。

因此,即使您在解決合併衝突後修改了上一次提交,仍然會出現新的提交。

0

不會。當您嘗試修改提交時,通過替換前面的提交,新的提交記錄將被記錄爲新的提交。如果你想把它們結合在一起並使它成爲一個提交,你可以使用壓縮或者你可以使用軟重置2提交,並通過冒險與遠程進行衝突來創建一個新的提交。