git cherry-pick
命令用于将一个或多个提交从一个分支复制到另一个分支。
假设现在有一个使用场景:我们只想要在一大堆提交中,将其中一个提交从某个分支复制到 master
分支。
以下是使用 git cherry-pick
命令的步骤。
确定要复制的提交的哈希值。可以使用
git log
命令来查看分支历史记录,并找到要复制的提交的哈希值。假设此次要复制的提交的哈希值是abc123
。在本地切换到
master
分支。可以使用git checkout
命令来切换到master
分支:1
git checkout master
运行
git cherry-pick
命令,指定要复制的提交的哈希值:1
git cherry-pick abc123
这将在
master
分支中创建一个新的提交,该提交包含与abc123
提交相同的更改。如果在复制提交时发生冲突,则需要手动解决冲突。在这种情况下,我们需要编辑冲突文件并手动解决冲突。一旦解决了冲突并编辑了文件,可以使用以下命令将更改标记为已解决:
1
git add <file>
我们可以重复运行
git cherry-pick
命令,直到所有提交都被复制到master
分支中。当然,如果要复制多个提交,则可以指定一个提交范围,例如:
1
git cherry-pick abc123..def456
这将复制从
abc123
到def456
之间的所有提交(不包括abc123
)。使用上面的命令,提交
abc123
将不会包含在 cherry pick 中。如果要包含提交abc123
,可以使用下面的语法:1
git cherry-pick abc123^..def456
当完成复制提交后,可以使用
git log
命令来查看master
分支上的提交历史记录,以确保成功地复制了所需的提交。