将提交从一个分支复制到另一个分支
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
)而不是功能分支中的所有更改(为此你必须使用变基或合并)。