git rebase -i 显示一个空的 MacVim 文件
Posted
技术标签:
【中文标题】git rebase -i 显示一个空的 MacVim 文件【英文标题】:git rebase -i presents an empty MacVim file 【发布时间】:2012-02-02 03:28:39 【问题描述】:我正在尝试重新提交提交。但是,任何时候我运行git rebase -i f83eff3ffc8
,例如,打开一个 MacVim 窗口,它都是空的(文件中没有信息)。然后,一旦我写入并关闭文件(即使它是空的),我就会收到一条 Successfully rebased and updated refs/heads/clicktocall-hotfix
消息。
文件名为.git/rebase-merge/git-rebase-todo
。我也尝试使用 sudo 运行它,但这并没有什么不同。
可能是什么问题?我从来没有成功完成过rebase。
【问题讨论】:
与 vim 无关。删除标签。 看起来 git 正在成功执行“无操作”变基。你想做什么?请描述您的分支结构以及提交f83eff
的位置。您可能会发现这很有帮助:www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html
没错,一个空的 rebase -i 文件意味着你尝试对 HEAD 本身进行 rebase,这不是 git rebase 的工作方式。
重新添加 vim 标签,因为这是在发出 git rebase -i 时默认调用的标签。
我有同样的问题,但我没有使用 vim。我正在从 Cygwin 终端运行 git,我尝试将我的 core.editor
设置为一堆不同的编辑器,例如 notepad2 和 GitExtensions,但是当我尝试进行交互式 rebase 时,我不断得到空文件,我不知道为什么。当我做git commit
时,notepad2 工作。我听说rebase
实际上是一个 perl 脚本,所以也许这与它有关?我正在使用 git 版本 1.8.1.3。
【参考方案1】:
对于 atom 我可以通过将等待标志添加到 gitconfig 来修复(参考 https://help.github.com/articles/associating-text-editors-with-git/)
[core]
editor = atom --wait
【讨论】:
【参考方案2】:我使用的是 Macvim,需要使用 -f
选项运行 mvim,如下所述:GIT_EDITOR not working with macvim
【讨论】:
供参考。从 Sublime 切换到 Atom 时我遇到了类似的问题,忘记更新 git 编辑器。这应该会有所帮助: git config --global core.editor "atom --wait"【参考方案3】:您甚至不必查看git-rebase-todo
文件。 Vim 应该显示一个 noop 行和一些 cmets。保存后,您应该会得到“Successfully rebase and updated”。
您要么使用的是旧版本的 git,要么您的 git install 损坏了,要么您以某种方式触摸了 .git 文件夹,导致它以这种方式运行。
【讨论】:
【参考方案4】:我在使用 Atom 时遇到了这个问题。我这样设置我的默认编辑器:
export VISUAL=vim
export EDITOR="$VISUAL"
现在一切正常。
TL;DR;使用 Vim。
【讨论】:
【参考方案5】:在 VS Code 中也遇到过这个问题,问题是我忘记了编辑器配置中的“等待”标志。
通过运行解决:
git config --global core.editor "code --wait"
【讨论】:
以上是关于git rebase -i 显示一个空的 MacVim 文件的主要内容,如果未能解决你的问题,请参考以下文章
intellij idea git rebase冲突不显示提示框git出现游离head的解决方法
intellij idea git rebase冲突不显示提示框git出现游离head的解决方法