我的分支(B)繼承自主(M)。由於時間已過,M和B已經發散,但B僅修改樹中的專用文件夾(f)。git rebase。我寧願擁有主區域的太多衝突
目標是保持B與M同步我明白它需要解決文件夾(f)中的衝突,但是有沒有一種方法可以簡化這種情況,對於不是f的任何東西,總是使用master重新貼牌?
我兜兜轉轉試圖解決的,我絕對沒有修改,並會想喝酒M.
提示的內容的文件夾衝突?
我的分支(B)繼承自主(M)。由於時間已過,M和B已經發散,但B僅修改樹中的專用文件夾(f)。git rebase。我寧願擁有主區域的太多衝突
目標是保持B與M同步我明白它需要解決文件夾(f)中的衝突,但是有沒有一種方法可以簡化這種情況,對於不是f的任何東西,總是使用master重新貼牌?
我兜兜轉轉試圖解決的,我絕對沒有修改,並會想喝酒M.
提示的內容的文件夾衝突?
對於不在目錄(文件夾)f
中的文件,您想要的是相當於-s theirs
。不幸的是,git首先沒有-s theirs
,更不用說可以限制爲f
。
然而,所有的東西都不會丟失,並且有點工作(例如shell腳本),您可以自動執行大部分操作,因爲git 確實有有git checkout
。
雖然重新綁定(即櫻桃採摘承諾將它們複製到新的基礎上),但每當git因衝突而停止時,對於任何有衝突的<path>
,您都可以簡單地使用git checkout <rev> -- <path>
。選擇對應於其文件版本的<rev>
(由於rebase反轉視角的方式,它只是HEAD
版本;或者您可以使用:2:<path>
,儘管我自己並沒有嘗試過)。這相當於使用-s theirs
(如果存在),因爲它使用它們的文件版本填充索引條目。這意味着你甚至不需要git add
的結果:它只是解決衝突。
請確保您的不要將此應用於您的目錄f
中的任何<path>
當然。根據需要手動解決這些問題。
完成之後,恢復rebase並讓git完成它的工作,直到你遇到下一個櫻桃挑選衝突。
它有助於與rebase走相反的路?或者爲什麼不把M合併到B中,這應該帶來所有的M變化,除了你有衝突的f之外呢? –
您不應該在沒有更改的文件中發生衝突。難道那位大師是被其他人用力推動的?另一種選擇是你在'f'之外有一些未跟蹤的文件,並且master創建它們。 – max630