案件如下。我有两个文件: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
文件,您可以调用:扭转补丁,但这在出现问题时不起作用。
请注意,
file2.c.orig
如果启动时已经存在patch
,则此文件将被删除并替换为当前状态的备份副本。如果您有这些
.orig
文件,您可以轻松地将它们重命名为原始文件名以撤消补丁。请注意,如果单个补丁失败,最好将所有补丁反转到项目中的所有文件。由于这需要
.orig
所有修补文件的文件,因此建议使用如果你有这些
.orig
文件,你可以调用: