将提交从一个分支复制到另一个分支

git cherry-pick <commit-hash> 会将现有提交中所做的更改应用于另一个分支,同时记录新提交。实质上,你可以将提交从分支复制到分支。

鉴于以下树 (来源)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

假设我们想将 b886a0 复制到 master(在 5a6057 之上)。

我们可以跑

git checkout master
git cherry-pick b886a0

现在我们的树看起来像:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

新提交 a66b23 具有与 b886a0 相同的内容(源差异,提交消息)(但是不同的父级)。请注意,挑选只会获取该提交的更改(在这种情况下为 b886a0)而不是功能分支中的所有更改(为此你必须使用变基或合并)。