2009-12-03 32 views
11

當我嘗試 'git apply-patch'時,您能否告訴我如何解決'patch does not apply'錯誤?運行'git apply'時出錯

$ git apply 0001-my.patch 
error: patch failed:test.xml:114 
error: text.xml: patch does not apply 

我在我的本地目錄中有'test.xml'。當我做'混帳狀態'時,它顯示我沒有本地更改。

謝謝你的幫助。

回答

2

那麼,該補丁有關於什麼應該改變的信息。如果第一個與文件內容不匹配,則該補丁不適用。

12

你可以嘗試:

git am -3 

當補丁不乾淨的應用,依傍3路合併(git am doc


qneill提到在the commentsgit apply now have a --3way option

您現在可以應用您的修補程序,而不必減少上下文。
由於它會留在指數的衝突兩半,讓你手動解決在工作樹衝突,「--3way」暗示「--index」,並不能與「--cached」或「--reject」使用。

你可以看到它在git1.7.12 release note(2012年8月,有些原來的問題少於3年後)

git apply」學會了扭動基礎版本並進行三方合併時補丁並不完全適用於您擁有的版本。

+3

它看起來像git-apply現在有一個--3way選項現在從1.7.11.1(見http://git.661346.n2.nabble.com/PATCH-v4-00-19-quot-git-apply -3way-quot-td7562763.html) – qneill 2013-03-26 19:30:59

+0

@qneill好點。我編輯了答案以反映該新功能。 – VonC 2013-03-26 19:41:59

0

或者你可能還需要與主或原產

git rebase origin 

變基只是爲了確保你是在同一條軌道與最新的變化之前,你將開始從其他人應用補丁。