我正在使用git
和gerrit
進行代碼評論。在使用唯一的change id
推送更改後,gerrit
儀表板出現合併衝突問題。所以我再次提取代碼並解決合併衝突,然後決定修改同一更改ID下的更改,但git
不允許這樣做。如果有merge conflict
,則不能完成Amend
。你必須做一個單獨的提交。 那麼有什麼辦法可以在同一change id
下更新我的代碼嗎?合併衝突後,在同一個更改ID下推送
0
A
回答
2
我認爲你用「Commit-Id」(Git)讓「Change-Id」(Gerrit)感到困惑。當您解決了衝突並修改了原始提交時,(當然)生成了新的提交(新提交ID)。你可以(實際上,你需要)保持相同的變化-ID在提交信息的最後一行,例如像:
更改ID:Id65100bb3841c73bb9dd2d2d6a69c77a5936681a
當你把這個承諾格里特,它會使用這一行來知道這個提交是對原始提交的修改,並將它作爲新的補丁集添加到原始更改中。
查看更多信息here。
0
然後決定當你修改在Git中提交修改相同的變化ID
下的變化,無論是通過git commit --amend
,通過Gerritt,或其他一些工具,你創建一個新的提交。舊的提交已被重寫,不再是您的分支的一部分。
因此,即使您在解決合併衝突後修改了上一次提交,仍然會出現新的提交。
0
不會。當您嘗試修改提交時,通過替換前面的提交,新的提交記錄將被記錄爲新的提交。如果你想把它們結合在一起並使它成爲一個提交,你可以使用壓縮或者你可以使用軟重置2提交,並通過冒險與遠程進行衝突來創建一個新的提交。
相關問題
- 1. 還原一個合併衝突的合併,並已被推送到遠程合併的衝突
- 2. 解決合併衝突後無法推送
- 3. 在對後續行的非衝突性更改中禁用git合併衝突
- 4. 爲什麼git合併在推送合併提交後生成兩個相同的更改歷史記錄?
- 5. 嘗試在遠程合併後推送同一分支
- 6. 合併衝突Gemfile.lock
- 7. libgit2:合併衝突
- 8. 合併衝突Git
- 9. Github合併衝突
- 10. Git合併衝突
- 11. DevelopmentServerPort合併衝突
- 12. Git合併(衝突)
- 13. svn合併衝突
- 14. TFS合併衝突
- 15. 推送更改以掌握並更新下一發布分支
- 16. SVN合併衝突期間犯下
- 17. 成功合併後Git rebase衝突?
- 18. 合併後的衝突標記
- 19. 如何編寫不易於合併衝突的更改?
- 20. 什麼是合併衝突?
- 21. 合併衝突解決
- 22. 意外的合併衝突
- 23. Bitbucket - 修復合併衝突
- 24. git pull - 在再次推送前合併遠程更改
- 25. Git在遠程存儲庫之間合併/推送更改
- 26. 如何合併表並防止ID衝突
- 27. 沒有衝突的git推送失敗
- 28. svn合併衝突的整個目錄
- 29. 合併兩個SQL表與鍵衝突
- 30. 修改gitignore後衝突拉
我知道commit id和change id是不同的,它只是我習慣了bitbucket和github,但是gerrit是當前env im工作所必需的,所以修改所有的時間有點緊張:) 。感謝您的鏈接,它幫助了很多。 – optimus
我知道Gerrit的「緊張感」有點不同,但只要你習慣了,你會感到很舒服。 –
使用Gerrit UI中顯示的Change-Id是解決這個問題的關鍵 - 謝謝! – Aidan