在编码中常常涉及到分支之间的代码同步问题,那就需要cherry-pick和rebase命令
问题:
如何将某个分支的多个commit合并到另一个分支,并在另一个分支只保留一个commit记录
解答:
假设有两个分支:”source_branch”和”dst_branch”, 你想要将 source_branch 中的最近的三个提交合并到 dst_branch分支,并在 dst_branch上只保留一个提交。步骤如下
1,切换到源分支 source_branch:
git checkout source_branch
git log # 获取commit id
2,切换到目的分支dst_branch:
git checkout dst_branch
3,使用cherry-pick合并提交
git cherry-pick <commit1> <commit2> <commit3> #如果有冲突,解决完冲突并继续git cherry-pick --continue
4,重复 3,直到所有提交都被应用到 dst_branch 分支
5,使用 git rebase
git rebase -i HEAD~3 # 如果你要保留最近的三个提交
在交互式 rebase 中,Git 会打开一个文本编辑器,将看到类似以下的内容:
pick <commit1>
pick <commit2>
pick <commit3>
将 <commit2> 和 <commit3> 的操作修改为 squash 或 fixup:
pick <commit1>
squash <commit2>
squash <commit3>
保存并退出编辑器。
6,git 会打开另一个编辑器,可以编辑合并后的提交消息。保存并退出
7,保存并退出编辑器。
8,提交
git push origin dst_branch
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


