git:补丁不适用
我有一个名为my_pcc_branch.patch的补丁。
当我尝试应用它时,我得到以下消息:
$ git apply --check my_pcc_branch.patch warning: src/main/java/.../AbstractedPanel.java has type 100644, expected 100755 error: patch failed: src/main/java/.../AbstractedPanel.java:13 error: src/main/java/.../AbstractedPanel.java: patch does not apply
这是什么意思?
我该如何解决这个问题?
来自msysgit@googlegroups.com邮件列表的Johannes Sixtbuild议使用以下命令行参数:
git apply --ignore-space-change --ignore-whitespace mychanges.patch
这解决了我的问题。
git apply --reject --whitespace=fix mychanges.patch
为我工作。
这个命令将应用这个补丁而不是解决它,把坏的文件保存为*.rej
:
git apply --reject --whitespace=fix mypath.patch
你只需要解决它们。 一旦解决运行:
git -am resolved
它发生在混合UNIX和Windows git客户端,因为Windows没有真正的“x”位的概念,所以您在Windows下的rw-r--r--
(0644)文件的签出是由msys POSIX层是rwx-r-xr-x
(0755)。 git认为模式差异基本上与文件中的文本差异相同,所以你的补丁不能直接应用。 我认为你唯一的好select是将core.filemode
设置为false
(使用git-config
)。
这里有一个msysgit问题与一些相关的信息: http : //code.google.com/p/msysgit/issues/detail? id=164(重新路由到archive.org的2013年12月3日副本)