Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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存储库,还有一个非常旧的补丁(2007年制作),我想应用于它。从那时起,存储库的内容发生了重大变化,当我尝试应用补丁时,由于冲突,它失败了 我想通过添加补丁作为一个新的分支并将其合并回master来处理git中的冲突。但要做到这一点,我需要找到补丁可以干净地应用到的最早提交。在git中有没有一种简单的方法可以做到这一点?您应该能够使用git bisect来实现这一点:正常启动二等分,然后使用: git bisect run git apply --check ${patch} 这

我有一个git存储库,还有一个非常旧的补丁(2007年制作),我想应用于它。从那时起,存储库的内容发生了重大变化,当我尝试应用补丁时,由于冲突,它失败了


我想通过添加补丁作为一个新的分支并将其合并回master来处理git中的冲突。但要做到这一点,我需要找到补丁可以干净地应用到的最早提交。在git中有没有一种简单的方法可以做到这一点?

您应该能够使用git bisect来实现这一点:正常启动二等分,然后使用:

git bisect run git apply --check ${patch}
这将使用命令——“这个补丁可以应用吗”——自动确定修订是好是坏。你应该很快找到正确的位置

这将为您提供应用修补程序的最新提交


如果需要最早的,请在存储库的开始位置和它成功应用的位置之间运行第二个对分,并使用“不应用”作为测试。

如果修补程序记录了它应该应用到的blob的标识,如果补丁没有干净地应用,您可以使用git apply--3way来回退三方合并

手动git应用

-3,--3路

当修补程序没有干净地应用时,如果修补程序记录了它应该应用到的blob的标识,并且这些blob在本地可用,那么请使用三方合并,可能会在工作树中的文件中留下冲突标记供用户解决。此选项表示--index选项,与--reject和--cached选项不兼容


git-bisect
需要好好修改,如果我知道这一点,我就不会有这个问题了(