部分git适用

时间:2013-04-03 19:40:10

标签: git

如何让git apply --index完全不中止只是因为一个大块失败了?我有一个100K +补丁,删除并添加了几十个文件,手动进行patch -p1git addgit rm跳舞会很痛苦。

编辑:git apply --reject --index似乎完成了三分之二的工作:修补程序已应用,删除的文件将被删除,但不会添加新文件。

3 个答案:

答案 0 :(得分:12)

自git版本1.7.12起,git apply has a --3way (or -3) option将:

  1. 应用它可以找出的任何更改并将它们分级(即:将它们添加到工作树和索引中),
  2. 添加任何新文件并暂存它们(即:将它们添加到工作树和索引中),以及
  3. 当遇到合并冲突时,对于每个冲突的大块,它都会:

    1. 将正在修补的分支中的代码放在<<<<<<< ours=======标记之间,
    2. 将补丁文件中的代码放在=======>>>>>>> theirs标记之间。
    3. ...有冲突的文件不会被暂存:您必须手动修复它们,然后git add它们。

答案 1 :(得分:2)

尝试git apply --reject <patchfile>

答案 2 :(得分:0)

这就是我的工作

首先,执行git apply --reject。然后运行git add -p并以交互方式选择块。除了add -p,您还可以使用其他git GUI。要添加新文件,请手动添加(如果未添加)。