【发布时间】:2021-03-17 04:41:55
【问题描述】:
我检查了Git: How to rebase to a specific commit?,但我无法理解,我的问题不相似
-
我有一个分支,其中有 2 个提交
x和y。 -
我在该分支中添加了另一个提交
z,并希望用x压缩它。 -
每次我打开文本编辑器进行变基时,它只显示提交
y并且 我无法使用x对其进行变基。
编辑:
我尝试使用:
git rebase -i x
【问题讨论】:
标签: git
我检查了Git: How to rebase to a specific commit?,但我无法理解,我的问题不相似
我有一个分支,其中有 2 个提交 x 和 y。
我在该分支中添加了另一个提交 z,并希望用 x 压缩它。
每次我打开文本编辑器进行变基时,它只显示提交 y 并且
我无法使用x 对其进行变基。
编辑:
我尝试使用:
git rebase -i x
【问题讨论】:
标签: git
您可以通过在x 和y 提交之上进行z 提交来解决此问题:
# from your branch
git commit -m 'z commit'
然后,我们可以进行交互式变基、重新排序提交和压缩。输入以下内容:
git rebase -i --root your_branch
这应该会打开一个编辑器窗口,显示您从 oldest 到 newest 的三个提交:
pick dj39fm2 message for commit x
pick m83mdk2 message for commit y
pick 3kme92w message for commit z
现在,重新排序提交,使z 紧跟在x 之后,然后将提交z 的选项更改为squash,告诉Git 你想将它压缩到x提交:
pick dj39fm2 message for commit x
squash 3kme92w message for commit z
pick m83mdk2 message for commit y
现在保存文件,退出编辑器,并允许 Git 启动 rebase。请注意,您可能会在 squash 期间或在 y 提交重新应用于新基时遇到一些合并冲突。
【讨论】: