![](/img/trans.png)
[英]Programmatically display all git rerere resolutions used during merge
[英]How can I audit git rerere's resolutions?
背景
我目前正在解決與啟用git rerere的合並沖突。 git status
顯示一條未合並的路徑。 當我查看文件時,沒有<<<<<<< HEAD
或>>>>>>> <SHA>
標識沖突的標記,這告訴我rerere已經完成了它的工作並根據我的方式解決了沖突已經做過了。
我想確認rerere的決議是正確的。
我正在進行的合並過程非常復雜,涉及到Linux內核的多個遙控器。 我昨天做了幾個遙控器的測試合並,目的是識別沖突,通知維護者,然后丟棄最終的(肯定已損壞的)內核。 在這樣做時,我做了幾個不小心的沖突解決方案,只是為了繼續下一個遙控器,並且在我完成之后,在所有沖突路徑上調用git rerere forget <pathspec>
,包括我現在正在處理的路徑。 因為我告訴rerere忘記這條路徑,我不知道為什么它在這次運行中解決了任何問題,我擔心它應用了我昨天做的修復,當時我不在乎結果是否正確。
問題
是否有任何方法可以查看在已經應用解決方案后重新解決的沖突?
我想避免重新啟動合並,因為這是一個漫長的過程,我們還沒有完全自動化。 此外,由於我試圖告訴rerere昨天忘記了這條路徑,但今天它仍然應用了一個解決方案,我想如果我不知道為什么git rerere forget <pathspec>
首先失敗,我會最終處於相同的位置。
相關問題
撤消在rebase中完成的git rerere解決方案< - 解決方案需要重新啟動合並
啟用git rerere有什么缺點嗎? < - 只討論git rerere forget <pathspec>
跟進說明/問題
我只是嘗試輸入git rerere forget
沒有pathspec,我知道這是不贊成的,但如果我理解正確,應該讓rerere忘記所有的決議。 我重新合並,它仍然對文件應用了一個解決方案。 我也完全禁用了rerere並且第三次運行合並,所以我可以看到沖突,而rerere確實應用了我昨天所做的半心半意的決議。 為什么forget
不正確地丟棄我不想重用的解決方案?
你可以切換到unrererere'd合並結果
git checkout -m path/to/file
然后重新申請
git rerere
關於忘記煩惱,你是否在沖突仍然活躍時做了忘記? 忘記適用於“<pathspec>中的當前沖突”
$ git checkout master^1 Warning: you are leaving 1 commit behind, not connected to any of your branches: 9e2db79 test3 HEAD is now at ca1fca7... Make a change to file (on master) $ git merge master^2 Auto-merging file.txt CONFLICT (content): Merge conflict in file.txt Resolved 'file.txt' using previous resolution. Automatic merge failed; fix conflicts and then commit the result. $ git rerere forget file.txt Updated preimage for 'file.txt' Forgot resolution for file.txt $ vi file.txt # old resolution's still in the worktree $ git checkout -m file.txt # now it's gone there too
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.