我有一个补丁,使用git am尝试应用它时会输出以下内容:
Checking patch old/filename...
error: old/filename: does not exist in index
在这个补丁中,old/filename实际上被移动到了new/filename, 但原始文件似乎已经从源代码树中消失了。
那么这个错误是什么意思以及如何解决或解决它?是否可以忽略它(使用--reject或其他方式)?
遇到了类似的问题,想要将一个仓库中的补丁应用到另一个仓库中,但是两个仓库之间有不同的提交记录,就像Jacques在这里所描述的那样:https://dev59.com/IGIk5IYBdhLWcg3wn_VF#27998109
需要注意的是,我尝试应用补丁的文件没有被移动(相对路径相同)。 解决方法是使用“三方合并”,就像这里建议的那样:https://dev59.com/CWQo5IYBdhLWcg3wR9nD#16968982
git am -3 < changes.patch
通过Matt在类似问题上的评论找到了这个方法:How can I generate a Git patch for a specific commit?