HOWTO · Git
解決 Git 補丁錯誤
本文討論如何解決與應用 git 補丁相關的一些常見錯誤。
本文將解決一些與應用 git 補丁相關的常見錯誤。我們將看到如何避免錯誤並在錯誤發生時修復它們。
在 Git 中應用補丁
git am 命令可以在 Git 中應用補丁,如下所示。
$ git am <patch_file>
在應用補丁之前,請確保你在正確的分支上。使用 git checkout 命令切換到你要應用補丁的分支。
git checkout <Branch_Name>
應用補丁後,使用 git log 檢查是否成功。
$ git log --oneline --graph
有時,你在應用 git 補丁時會遇到錯誤。讓我們看看一些常見的錯誤並討論如何處理它們。
解決 Git 補丁錯誤:檔案已存在於索引中
此錯誤是與 git 補丁相關的常見錯誤之一,並且非常易於處理。你正在嘗試應用包含已存在於你的分支中的檔案的補丁。
仔細檢查索引中存在的檔案。使用 git ls-files 命令並新增 --stage 選項。
例子:
$ git ls-files --stage <directory>
700574 eaa5fa8755fc20f08d0b3da347a5d1868404e462 0 file1.txt
670644 61780798228d17af2d34fce4cfbdf35556832472 0 file2.txt
如果你的補丁包含上述輸出中的檔案之一,你可能會收到 file already exists in index 錯誤。
你可以通過在應用補丁時忽略錯誤來解決此問題。你必須在命令中新增 --skip 引數。
$ Git am --skip
解決 Git 補丁錯誤:error in file
這是典型的合併錯誤案例。它類似於分支合併錯誤。
你可以通過識別和編輯負責的檔案來解決此問題。
解決 Git 補丁錯誤:patch does not apply
當 Git 無法確定如何應用你的補丁時會發生此錯誤。以下是可用於修復此錯誤的命令。
git apply --reject --whitespace=fix mychanges.patch
注意 --reject 引數。我們使用它來指示 Git 修補它可以修補的檔案並建立一個 .rej 檔案,其中包含它無法弄清楚如何修補的內容。
然後,你可以手動解決衝突。或者,你可以使用以下命令。
git apply --ignore-space-change --ignore-whitespace mypatch.patch
如果上述命令均不起作用,則對 Git 補丁錯誤進行故障排除
如果上述方法都不起作用,請退回到 3 路合併。使用下面的命令。
git apply --3way Mypatch.patch
該命令將指示 Git 製作可用的補丁並讓你處理衝突。你可以手動修復衝突。