33

我正在尝试压缩 git 存储库中的一些提交。

> git rebase -i HEAD~3

Successfully rebased and updated refs/heads/staging.

打开一个文件,标题为git-rebase-todo

pick a2f3467 Require statement incorrect
pick c41212e Require file in environment
pick 2743221 This should work

# Rebase c5f42f3..2743221 onto c5f42f3
# ..........

我尝试将底部的两个提交更改为squashfrom pick。我保存文件,我收到以下错误:

Unable to save ~/Documents/code/myapp/.git/rebase-emrge/git-rebase-todo

4

3 回答 3

62

问题是当 sublimetext2 启动时,它不会阻塞并立即返回。然后 Git 认为您已完成文件编辑并执行变基。这就是为什么你看到

Successfully rebased and updated refs/heads/staging

消息,甚至在您编辑文件之前。请改用该subl命令,该命令专为此类用途而设计。github帮助告诉你配置它

git config --global core.editor "subl -n -w"
于 2013-03-15T11:09:55.333 回答
1

根据我的经验,问题是由于用户权限造成的。

如果您Could not find the file "~/../../git-rebase-todo"在保存文件时收到错误消息,请尝试以 sudo 运行它:

sudo git rebase -i HEAD~3

但是请记住,这可能会更改任何受影响文件的所有者。

于 2018-04-26T00:27:23.340 回答
0

我在使用 vs 代码时遇到了类似的问题,您可以在终端中尝试...

git config --global core.editor "code -n --wait"
于 2022-02-03T17:08:52.850 回答