2013-04-03 30 views
15

我怎樣才能讓git apply --index不會因爲一個大塊失敗而完全中止?我有一個100K +的補丁,有幾十個文件被刪除和添加,手動跳舞patch -p1git addgit rm會很痛苦。部分git適用

編輯:git apply --reject --index似乎做了三分之二的工作:修補程序被應用和刪除文件被刪除,但不添加新文件。

+2

'--apply'標誌與'--reject'幫助組合嗎? – 2013-04-03 20:04:39

+0

只是想知道,這個補丁可以使用'git am --interactive'嗎? – stdcall 2014-01-24 19:54:57

回答

9

由於Git版本1.7.12,git apply has a --3way (or -3) option這將:

  1. 應用它可以計算出任何的變化和階段他們(即:將它們添加到工作樹和索引),
  2. 添加任何新的文件,將它們暫存(即:將它們添加到工作樹和索引),並且,
  3. 當它遇到合併衝突,它將爲每個衝突大塊:

    1. 將代碼從你<<<<<<< ours=======標記之間修補分支,並
    2. 將代碼從補丁文件=======>>>>>>> theirs標記之間。

    ...有衝突的文件將不會被暫存:您必須手動修復它們,然後再將它們修改爲git add