git操作:cherry-pick和rebase

内容分享1个月前发布 DunLing
0 0 0

在编码中常常涉及到分支之间的代码同步问题,那就需要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
© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...