我正在尝试在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
# ..........
我尝试将最后两次提交从squash
更改为pick
。我保存文件,我收到以下错误:
Unable to save ~/Documents/code/myapp/.git/rebase-emrge/git-rebase-todo
答案 0 :(得分:56)
问题是当启动sublimetext2时,它不会阻塞并立即返回。然后Git认为你已经完成了编辑文件并执行了rebase。这就是你看到
的原因Successfully rebased and updated refs/heads/staging
消息,在您编辑文件之前。请改用subl
命令,该命令专为此类用途而设计。 github help告诉您使用
git config --global core.editor "subl -n -w"
答案 1 :(得分:0)
根据我的经验,问题是由于用户权限。
如果您在保存文件时收到Could not find the file "~/../../git-rebase-todo"
错误,请尝试将其作为sudo运行:
sudo git rebase -i HEAD~3
但请记住,这可能会更改受影响文件的所有者。