我需要在分支上应用补丁。补丁的一些变化可以干净利落,有些可能不会。
我使用以下命令:
git diff hash1 hash2 -u | git apply -3
由于某种原因,它什么也没做。它告诉我一些补丁错误等,但我的工作副本没有变化。这很奇怪,补丁包含新文件,这些文件肯定可以应用于工作副本,但它们也不会被创建。
我尝试将申请替换为patch
git diff hash1 hash2 -u | patch -p1 --binary
它有效。我的意思是它修补了一些文件,创建了其他文件等但是我想将失败的朋友与git mergetool
合并,所以我需要使用git apply
。
它有什么问题,如何解决?
P.S。
我可以在一个文件中应用更改:
git diff hash1 hash2 -u -- path/to/file | git apply -3
然后应用成功并修补文件。
答案 0 :(得分:0)
你在寻找git apply的--reject选项吗?
从手册页:
--reject
For atomicity, git apply by default fails the whole patch
and does not touch the working tree when some of the hunks
do not apply. This option makes it apply the parts of the
patch that are applicable, and leave the rejected hunks in
corresponding *.rej files.
但是,我没有看到这与git mergetool有什么关系......