2017-04-07 70 views
1

我經歷過以下情況:與git rerere enabled在合併過程中的Git rerere和分辨率覆蓋非衝突的文件

我遇到了一個矛盾。

我修復了衝突文件,但其他非衝突文件也必須進行調整。
所有感動的文件都被添加並提交。 git rerere表示已記錄該決議。

A後來git pull --rebase=preserve重複合併衝突和git rerere來救援。
但是,只有衝突文件中的分辨率部分被應用,其他文件中的更改不是。
快速瀏覽rr-cache表明其他更改沒有被記錄。

git rerere是否只在直接衝突的文件中記錄更改而沒有其他內容?

是否有一個選項可以記錄在解析提交中完成的所有更改,而不僅僅是衝突文件?

回答

0

git rerere是否只記錄直接衝突的文件中的變化,而不是其他的?

是的。好吧,幾乎 - 它稍微複雜一些。

是否有一個選項可以記錄在解析提交中完成的所有更改,而不僅僅是衝突文件?

沒有,而這正是「稍微更復雜的」部分來自於該rerere代碼不記錄所有的變化和決議。它只記錄衝突的更改及其相應的分辨率。非衝突的比特根本不保存。

(注意,順便說一句,這實際上git rebase --preserve重新創建的合併,也就是說,不新git merge命令,因爲我認爲你已經觀察到,從git pull調用它在的這部分沒有任何影響過程)。