Git rebase执行后提交顺序与示例不一致问题咨询
问题成因
核心是两个认知误区导致的判断偏差,实际你的rebase结果完全符合Git逻辑,和示例没有冲突:
1. 混淆了git rebase的操作方向
git rebase <基底分支>的执行规则是:将当前所在分支的独有提交,全部嫁接在<基底分支>最新提交的拓扑后继位置,而非反过来。
你看到的示例操作是:在feature分支(当前操作分支)执行git rebase master(master为基底分支),所以feature分支的独有提交会被放到master所有提交的后面。
你自己的操作是:在本地master分支(当前操作分支)执行git rebase origin/master(origin/master为基底分支),自然会把本地master独有的提交1111,放到origin/master最新提交555的后面。
2. 混淆了git log的输出顺序和拓扑先后关系
git log默认采用倒序输出规则:拓扑顺序越靠后、提交时间越新的提交,会排在列表的越上方。
你理解的示例中「feature分支提交位于master分支前方」,指的就是log列表里feature的提交排在更靠上的位置,和你现在看到的「本地提交1111排在origin/master的555上方」是完全一致的逻辑,不存在冲突。
内容的提问来源于stack exchange,提问作者user7693832
相关产品推荐
相关产品推荐

