cherry-pick 的替代方案

Overriding alternative to cherry-pick

git 中有一个 cherry-pick 命令,它允许我在当前提交之上复制一些提交。但是,它会解决一些我不关心的冲突。什么是 cherry-pick 的替代方法,它只是在当前提交之上复制选择的提交?

我可以手动完成:select 所需提交,复制其文件,将它们保存到非托管文件夹中,select 当前提交将作为新提交的基础,复制存档文件放入 git 工作文件夹。另外,我必须复制提交消息。这是我目前为避免变更冲突所做的巨大麻烦。哪个命令可以帮助我自动实现目标?

您可以使用合并策略选项 'theirs':

git cherry-pick <SHA-1> -Xtheirs

其中 <SHA-1> 是您要挑选到您的分支中的提交的哈希值。

这意味着,在发生冲突的情况下,Git 将始终使用精心挑选的提交版本 ("theirs") 来解决它。


请注意,即使没有该选项,您也可以手动执行相同的操作(但对于许多文件来说这将无法很好地扩展)

git cherry-pick <SHA-1>
error: could not apply <SHA-1>... [Commit Message]
hint: after resolving the conflicts, mark the corrected paths

git checkout --theirs path/to/conflicted_file.php
git add path/to/conflicted_file.php