You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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需要的提交列表内容。

解决步骤

  1. 修改Git编辑器配置,移除-w参数:
    全局生效(所有仓库):
    git config --global core.editor /usr/bin/vi
    
    仅当前仓库生效:
    git config core.editor /usr/bin/vi
    
  2. 重新执行交互式变基命令:
    git rebase -i HEAD~3
    

此时Vi应该能正常显示提交列表及可编辑的操作命令(如pick、squash等),按照教程步骤即可完成提交合并。

内容的提问来源于stack exchange,提问作者aless80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:01:19