Diff
打更新檔後如何撤銷?.rej/.orig 文件
案件如下。我有兩個文件:
file1.c
,file2.c
ls file1.c file2.c patch.diff patch < patch.diff ... x out of x hunk FAILED -- saving rejects to file file1.c.rej (the same with file2.c) ls file1.c file2.c file1.c.orig file2.c.orig file1.c.rej file2.c.rej patch.diff patch -R < patch.diff # I thought it will revert changes back ... x out of x hunk FAILED -- saving rejects to file file1.c.rej (again, the same with file2.c) ls file1.c file2.c file1.c.orig file2.c.orig file1.c.rej file2.c.rej patch.diff
現在我帶著損壞的文件離開了,不知道如何找回它們。似乎 *.orig 文件在第二遍被替換為已經損壞的更改。有任何想法嗎?
從原始文件製作備份副本總是一個好主意。
patch
如果您使用 option呼叫,這可以自動完成-b
。背景:如果沒有
.rej
文件,您可以呼叫:patch -R
扭轉更新檔,但這在出現問題時不起作用。
請注意,
file2.c.orig
如果啟動時已經存在patch
,則此文件將被刪除並替換為目前狀態的備份副本。如果您有這些
.orig
文件,您可以輕鬆地將它們重命名為原始文件名以撤消更新檔。請注意,如果單個更新檔失敗,最好將所有更新檔反轉到項目中的所有文件。由於這需要
.orig
所有修補文件的文件,因此建議使用patch -b
如果你有這些
.orig
文件,你可以呼叫:for i in *.orig; do base=`basename $i .orig` mv $i $base done