git patch -p混乱

时间:2013-01-29 20:49:15

标签: git

所以,我尝试使用命令

修补当前分支
patch -p RETURN quote-patch.txt

但是,我不知道在-p选项后我应该放什么号码。我试图放几个号码(0,1,2,3,4),但它会返回此错误:

patching file RETURN
Hunk #1 FAILED at 74.
Hunk #2 FAILED at 84.
Hunk #3 FAILED at 95.
Hunk #4 FAILED at 107.
Hunk #5 FAILED at 139.
Hunk #6 FAILED at 187.
6 out of 6 hunks FAILED -- saving rejects to file RETURN.rej

任何想法? THX

1 个答案:

答案 0 :(得分:4)

您的补丁不适用于您当前的工作集。

如果没有更多信息,我不能说为什么会这样。在尝试修补程序应用程序之前,您可能在本地更改了RETURN。如消息所示,请尝试查看RETURN.rej(和RETURN本身)以确定后果。

使用patch命令行实用程序时,应使用-p编号,使修补程序中的路径与工作集中的路径匹配:如果修补程序标头显示{{ 1}},并且您当前的工作目录中包含+++ lib/foo/RETURN,这是foo/RETURN的情况。

然而,既然你已经标记了这个问题“git”,我将假设你在一个git存储库中。使用git时,不应使用-p1工具:而是自然地推送+拉动更改,或使用patchgit format-patch发送和接收更改集。这将保留权限,提交消息,作者信息等。如果您使用直线git am,然后将更改应用于diff,则所有这些额外元数据都将丢失。