Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理git:修补程序不适用_Git - Fatal编程技术网

如何处理git:修补程序不适用

如何处理git:修补程序不适用,git,Git,我有一个补丁文件生成一年前。(更改代码的人已离开,因此我没有他的工作区与当前代码同步。我当时只有一个显示差异的修补程序文件) 我想把他的零钱加到最近的分行。为此,我将补丁文件应用到我的工作区,它显示一些文件是“补丁不应用”。原因是git找不到插入更改的正确位置。一年前,他的更改应该插入到文件的X行和X+1行之间。但现在,当GitApply尝试这样做时,它发现X行和X+1已经变成了另一行。(由于今年引入了其他代码) 为了验证我的猜测,我手动删除了该文件的一些代码,以便第X行和第X+1行与生成补丁时

我有一个补丁文件生成一年前。(更改代码的人已离开,因此我没有他的工作区与当前代码同步。我当时只有一个显示差异的修补程序文件)

我想把他的零钱加到最近的分行。为此,我将补丁文件应用到我的工作区,它显示一些文件是“补丁不应用”。原因是git找不到插入更改的正确位置。一年前,他的更改应该插入到文件的X行和X+1行之间。但现在,当GitApply尝试这样做时,它发现X行和X+1已经变成了另一行。(由于今年引入了其他代码)

为了验证我的猜测,我手动删除了该文件的一些代码,以便第X行和第X+1行与生成补丁时相同,这次git apply没有抱怨该文件

我的问题是如何git应用旧补丁

有两种选择:

  • 你没有。您研究修补程序以了解更改的意图,并进行自己的编辑
  • 您从与修补程序正在查看的源处于同一时间点的提交生成分支。应用修补程序,然后合并
  • 但是,第二个选项中的“合并”步骤可能会将您带回到第一个选项。

    git am -3 foo.patch
    patch -p1 < foo.patch
    
    git add fixed_conflicted_files
    git am --continue