我有一个名为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
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
我该如何解决这个问题?
DP_*_*DP_ 294
来自msysgit@googlegroups.com邮件列表的Johannes Sixt建议使用以下命令行参数:
git apply --ignore-space-change --ignore-whitespace mychanges.patch
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题.
小智 257
git apply --reject --whitespace=fix mychanges.patch
为我工作.
ruf*_*fin 76
当一切都失败了,尝试git apply
的--3way
选项.
git apply --3way patchFile.patch
--3way
当补丁不能干净地应用时,如果补丁记录了它应该应用的blob的身份,则回退到三向合并,并且我们在本地可以使用这些blob,可能会在文件中保留冲突标记用户要解决的工作树.此选项隐含--index选项,与--reject和--cached选项不兼容.
典型的失败案例尽可能多地应用补丁,并且在git中通过git解决冲突,但通常会这样做.可能比reject
替代方案更容易一步.
Iva*_*lin 53
此命令将应用不解析它的补丁,将坏文件保留为*.rej
:
git apply --reject --whitespace=fix mypath.patch
Run Code Online (Sandbox Code Playgroud)
你只需解决它们.解决后运行:
git -am resolved
Run Code Online (Sandbox Code Playgroud)
Ben*_*son 16
当您混合UNIX和Windows git客户端时会发生这种情况,因为Windows实际上并不具有"x"位的概念,因此您rw-r--r--
在Windows下将(0644)文件的签出由msys POSIX层"提升"为rwx-r-xr-x
(0755) .git认为模式差异与文件中的文本差异基本相同,因此您的补丁不会直接应用.我认为你唯一的好选择是设置core.filemode
为false
(使用git-config
).
这是一个msysgit问题,其中包含一些相关信息:http://code.google.com/p/msysgit/issues/detail? id = 164 (重新发送到archive.org的2013年12月3日副本)
Pin*_*yni 16
尝试使用此处建议的解决方案:https://www.drupal.org/node/1129120
patch -p1 < example.patch
这对我有帮助.
git apply --reverse --reject example.patch
当您创建分支名称相反的补丁文件时:
IE。git diff feature_branch..master
代替git diff master..feature_branch
就我而言,我很愚蠢,一开始就错误地创建了补丁文件,实际上是在以错误的方式进行区分。我最终得到了完全相同的错误消息。
如果您在master上并且正在执行git diff branch-name > branch-name.patch
,这会尝试删除您想要发生的所有添加操作,反之亦然(对于git而言,这是不可能完成的,因为显然,从未删除过的添加操作无法删除)。
因此,请确保您签出您的分支并执行 git diff master > branch-name.patch
归档时间: |
|
查看次数: |
182536 次 |
最近记录: |