以下情况会发生什么:
在某些时候我需要对已被视为已关闭的功能进行更改(它已合并为主版并已删除)
X --- --- (feature (branch deleted)
/ \
/ \
a --- --- --- M master
我做的是:
git rebase --interactive X
源代码中的更改是否已经修改了提交X.我希望图表保持不变但是有类似的内容:
X --- -(feature (branch deleted)
/ \
/ M
/ /
/ /
a --- --- --- X master
提交的编辑是否在合并之间传播?如何与现有的"未来"犯?
答案 0 :(得分:1)
您的新提交图有另一个X
提交,因为默认情况下rebase不会保留合并。如果您想保留合并,则需要使用--preserve-merges
标记,或简称为-p
:
git rebase -i -p <base-commit>
请注意preserving merges interactively does not work correctly when you reorder commits。可以一起使用它们:
--preserve-merges
--interactive
提供的待办事项列表没有 表示修订图的拓扑。编辑提交和重写 他们的提交消息应该可以正常工作,但尝试重新提交提交的倾向 产生违反直觉的结果。
另外,您确定X
是您想要使用的基本提交吗?如果您想修改X
,我认为您应该选择a
作为基础:
git rebase -i -p a