如何使用git cherry-pick命令复制包含二进制文件的提交记录

10

我正在尝试从不同的分支中挑选一个提交,其中大部分是二进制文件。看起来这个过程大部分是成功的,只有一个文件出现了错误信息:

warning: Cannot merge binary files: XXXX.so (HEAD vs. d8ef550... Add support for 32-bit apk)
error: could not apply d8ef550... Add support for 32-bit apk
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

我可以对那个文件执行'git add',但结果并不是我期望的。我预期它应该是一次修改,但事实证明删除了那个文件。我试图挑选部分提交记录,其中既修改了一些二进制文件,也删除了一些文件。

所以问题是...如何最好地挑选一次修改了二进制文件的提交记录?

1个回答

20

你可以使用 git cherry-pick --strategy=recursive -X theirs {Imported_Commit} 来实现此操作。

(你可能需要先中止当前的 cherry-pick 操作;git cherry-pick --abort)


不错,成功了。我只需要明确地执行 'git rm <文件名>',然后就到了它需要的位置。谢谢。 - Sofia Clover

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接