执行git rebase -i HEAD~<n>时Vi无提交列表及命令显示的求助
Git交互式变基(rebase -i)打开Vi显示空白的解决办法
尝试合并提交时,执行git rebase -i HEAD~3后Vi仅显示空白页面(带波浪线),无法看到提交列表和操作命令,具体操作及日志如下:
git checkout master git checkout -b masterBAK git log --oneline --graph --decorate -n 4
输出:
* 047687e (HEAD) Merged PR 100: Fix pytest using marker |\ | * 8ca0695 (origin/correct_bug) add something to pytest | * 7b247c8 mock some function |/ * 5c5c75a (tag: v1.4.0) Merged PR 090: cleanup imports
执行git rebase -i HEAD~3后,Vi打开空白界面,仅能通过:q退出,无法进行提交合并操作。
问题原因
你的Git配置中core.editor参数带有无效的-w选项:
git config -l # 相关配置行: core.editor=/usr/bin/vi -w
Vi的-w参数用于记录所有输入到指定文件,这个参数会干扰Git传递给编辑器的临时文件,导致Vi无法加载rebase需要的提交列表内容。
解决步骤
- 修改Git编辑器配置,移除
-w参数:
全局生效(所有仓库):
仅当前仓库生效:git config --global core.editor /usr/bin/vigit config core.editor /usr/bin/vi - 重新执行交互式变基命令:
git rebase -i HEAD~3
此时Vi应该能正常显示提交列表及可编辑的操作命令(如pick、squash等),按照教程步骤即可完成提交合并。
内容的提问来源于stack exchange,提问作者aless80
相关产品推荐
相关产品推荐

