切换到需要提交commit的分支,
git checkout master
选择一个待合入的commit hash,多个hash值,按提交时间顺序排序。即最先提交的commit放在前面。
git cherry-pick hash1 hash2
a - b - c - d - hash1 - hash2 Master
\
e - hash1 - hash2 - g Feature
提交代码到暂存区
git commit -m "code"
push代码到远端分支
git push origin master
经常需要从一个分支选择性的合并commit到另一个分支,具体可使用cherry-pick实现:
单个commit合并
git cherry-pick commit_id
Cherry pick 支持一次转移多个提交。
$ git cherry-pick <HashA> <HashB>
上面的命令将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。
如果想要转移一系列的连续提交,可以使用下面的简便语法。
$ git cherry-pick A..B
上面的命令可以转移从 A 到 B 的所有提交。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。
注意,使用上面的命令,提交 A 将不会包含在 Cherry pick 中。如果要包含提交 A,可以使用下面的语法。
$ git cherry-pick A^..B
https://ruanyifeng.com/blog/2020/04/git-cherry-pick.html