执行git rebase -i b222222为何未显示目标提交b222222?
为什么git rebase -i b222222不显示b222222提交?
这是因为git rebase -i <commit>的逻辑是:将该提交之后的所有提交(当前分支上位于该提交之后的提交)重新应用,指定的<commit>是作为基准的「不修改的最后一个提交」,它本身不会出现在交互编辑列表里。
在你的提交历史中:
commit c333333 commit b222222 commit a111111
执行git rebase -i b222222时,Git会把b222222之后的c333333拿出来处理,所以交互界面只显示c333333。
如果要编辑b222222这个提交,需要指定它的父提交作为rebase基准,有两种方式:
- 使用父提交的SHA:
git rebase -i a111111 - 使用相对引用(
^表示父提交):git rebase -i b222222^
执行上述命令后,交互界面会显示:
pick b222222 pick c333333 # Rebase a111111..c333333 onto a111111 (2 commands)
这时你就可以修改b222222对应的操作(比如改成edit)来编辑该提交了。
内容的提问来源于stack exchange,提问作者Mixchange
相关产品推荐
相关产品推荐

