需要单独把多次提交中的某一次提交从你的分支迁移到另外一个分支上,即跨分支
git cherry-pick <commit_id>
比如:我想把以下分支
A-B master
\
C-D-E-F-G develop
中的D,F 两次提交移动到master分支,而保持其他commit不变,结果就像这样
A-B-D-F master
\
C-E-G develop
那么,思路是将D,F 用cherry-pick应用到master分支上,然后将develop分支对master分支变基。
$ git checkout master
$ git cherry-pick D
$ git cherry-pick F
$ git checkout develop
$ git rebase master
注意有些情况下使用cherry-pick会存在冲突,解决方法和我们平时合并分支遇到冲突一样
相反,您可以git Ctrl Z并重试提交,但这次添加“-m”并在其后添加引号中的消息,然后它将提交而不会提示您使用该页面。
具体步骤:
git tag <tag名称> <提交id>
例如:
git tag feature-A-commit2 a1b2c3d4
git checkout <目标分支>
例如:
git checkout release
git cherry-pick <标签名称>
例如:
git cherry-pick feature-A-commit2
如果合并过程中出现冲突,需要手动解决冲突并提交。
最后将目标分支推送到远程仓库。
git push origin <目标分支>
完整操作示例:
# 打上标签
git tag feature-A-commit2 a1b2c3d4
# 切换到目标分支
git checkout release
# 将标签提交合并到目标分支
git cherry-pick feature-A-commit2
# 解决冲突并提交
# 推送目标分支到远程仓库
git push origin release