2016-03-03 54 views
3

git rerere高興地存儲我的衝突解決方案,並在出現相同的衝突時自動應用它們。只有git rerere手動分辨率

但是,有時,我遇到了一個不同的上下文的合併衝突,我不想自動合併。

有沒有一種方法,使git rerere記住衝突解決,但需要到git rerere顯式調用應用它們?

要清楚,我不希望git rerere cleargit rerere forget,而是簡單地說,自動解決合併衝突,除非明確指示(獎金,如果能告訴我申請之前提議的決議!)

+0

要做到這一點的整個合併,只需運行它rerere off:'git -c rerere.enabled = false merge $ branch'。 – jthill

+0

關閉並再次打開是一個選項(當我注意到'rerere'正在做不希望的事情時,我一直在使用這個選項)。但是,只有當我注意到rerere做了不合需要的事情時,這隻適用於我(因爲合併衝突可能涉及許多文件,並且rerere自動分辨率有時會隱藏在輸出中),還可能記得我的新分辨率以及舊的,提供一個選項?我不認爲這是一個功能,可能永遠不會......)。 – arcyqwerty

回答

1

我不知道有一種方法不適用於特定的塊。
你確實可以忘記文件的重新解析(as discussed here),但不是隻是一個塊。

你將不得不直接與git的/ RR-緩存一塌糊塗,爲mentioned in this patch

我們錄製以前看到衝突及其在 子目錄$GIT_DIR/rr-cache分辨率和子目錄 的名字是通過散列衝突大塊的「形狀」來計算的。
當一個外觀類似的衝突在工作樹後遇到 「git rerere」試圖通過運行 三方合併重放記錄的分辨率以應用更改從以前的衝突 去以前的決議目前的衝突狀態。