我試圖應用包含二進制文件與git apply
但只有文件被添加的修補程序。我試着運行git apply failing.patch -v
,它打印的東西類似於:Git應用跳過修補程序
跳過的補丁'file.txt'。
檢查修補程序file.bin ...
乾淨地應用修補程序file.bin。
我怎樣才能知道跳過的原因是什麼?由於目前的消息不是很有啓發性。
我試圖應用包含二進制文件與git apply
但只有文件被添加的修補程序。我試着運行git apply failing.patch -v
,它打印的東西類似於:Git應用跳過修補程序
跳過的補丁'file.txt'。
檢查修補程序file.bin ...
乾淨地應用修補程序file.bin。
我怎樣才能知道跳過的原因是什麼?由於目前的消息不是很有啓發性。
我發現通過運行patch -p1 < failing.patch
其印刷
無法找到文件在這提醒了我,我是不是在根目錄下輸入線5
修補問題。
我不明白爲什麼no one had asked this before以及爲什麼詳細消息不是詳細的。
此外,連official documentation都沒有提到跳過和可能的原因。
在嘗試跨項目移植更改時遇到此問題。 git apply
似乎忽略修補程序文件路徑上的任何目錄名稱,如果索引行與目標存儲庫中的文件哈希不匹配,它也拒絕應用。我不得不使用這些選項(其中--no-index
似乎是無證)更好的成功:
git apply --verbose --no-index --directory {subdir} {patch-file}
得到了同樣的問題。在我的情況下,補丁目標的某些父目錄中的錯誤來源是.git
文件夾。解決方案是將修補程序目標移到該父目錄之外。
修補程序通常在其包含的更改已應用於過去時跳過。這有很多可能的原因:合併,櫻桃選擇,手動或使用其他補丁等操作變化。 – axiac
我也想過,但事實並非如此。 –