簡體   English   中英

我如何審核git rerere的決議?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM