git rebase --rebase-merges未保留合并顺序问题求助
Git rebase --rebase-merges 行为不符预期的问题
初始仓库结构
-+----*----*------*------------------------- Main \------------+---------+------+-- Dev \-*--*--*--/-*--*--*-/-*--*-/ Feature1
注:*代表提交,斜线代表合并。分支关系:从Main分支拉出Dev分支,再从Dev分支拉出Feature1分支;多次在Feature1上提交后合并回Dev,期间Main分支也产生了新提交。
操作与预期/实际结果
执行命令 git rebase MAIN --rebase-merges 将Dev分支重基到Main分支,预期得到的分支结构为:
--*--*--*-+------------+---------+------+-- Main \-*--*--*--/-*--*--*-/-*--*-/
但实际得到的结构却是:
-*--*--*-+-----------------------------+--+--+ \--------------------*--*---/--/--/ \----------*--*--*--------/--/ \--*--*-*---------------/
尝试操作与困惑
尝试添加 -i 参数编辑rebase的todo脚本,发现所有合并命令都排在脚本末尾;调整这些命令的位置后,最终得到的是没有合并历史的线性提交序列。完全搞不懂脚本中的reset命令及其与merge命令的交互逻辑,搜索官方文档也没找到能解释清楚的有效信息。
额外疑问
另外想了解,如果Dev分支结构改成下面这样,重基过程是否会更顺利?
\------------+-----------+------+-- Dev \-*--*--*--/\--*--*--*-/\-*--*-/ Feature1
内容的提问来源于stack exchange,提问作者dwilliss
相关产品推荐
相关产品推荐

