Git的问题 - rebase / squash

时间:2013-03-13 11:51:00

标签: git sublimetext2 git-rebase

我正在尝试在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

2 个答案:

答案 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

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