首页 > 解决方案 > 重新基于特定的提交

问题描述

我检查了Git: How to rebase to a specific commit? 但我不明白,我的问题不相似

编辑:

我尝试使用:

git rebase -i x

标签: git

解决方案


您可以通过仅在and提交z之上进行提交来解决此问题:xy

# from your branch
git commit -m 'z commit'

然后,我们可以进行交互式变基、重新排序提交和压缩。键入以下内容:

git rebase -i --root your_branch

这应该会打开一个编辑器窗口,显示从最旧最新的三个提交:

pick dj39fm2 message for commit x
pick m83mdk2 message for commit y
pick 3kme92w message for commit z

现在,重新排序提交,使其z紧随其后x,然后将提交选项更改为zsquash以告诉 Git 您要将其压缩到x提交:

pick dj39fm2 message for commit x
squash 3kme92w message for commit z
pick m83mdk2 message for commit y

现在保存文件,退出编辑器,并允许 Git 启动 rebase。请注意,您可能会在 squash 期间遇到一些合并冲突,或者在y提交重新应用到新基础时遇到一些合并冲突。


推荐阅读