解決 Git 補丁錯誤

John Wachira 2023年1月30日
  1. 在 Git 中應用補丁
  2. 解決 Git 補丁錯誤:檔案已存在於索引中
  3. 解決 Git 補丁錯誤:error in file
  4. 解決 Git 補丁錯誤:patch does not apply
  5. 如果上述命令均不起作用,則對 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 製作可用的補丁並讓你處理衝突。你可以手動修復衝突。

作者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn