2013-03-13 99 views
25

我試圖在git倉庫中壓縮一些提交。Git的問題 - rebase/squash

> 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 
# .......... 

我試圖從pick底部兩次提交更改爲squash。我保存文件,我也得到了以下錯誤:

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

+1

它看起來像一個文件系統錯誤,而不是一個Git之一。如果您嘗試手動在該位置創建文件會發生什麼情況? – Ben 2013-03-13 12:17:07

+0

你使用什麼編輯器? – poke 2013-03-13 12:24:45

+0

@poke我使用SublimeText2 - 沒有什麼奇特的(我不認爲!) – Brandon 2013-03-13 15:46:43

回答

50

的問題是,當sublimetext2啓動時,它不會阻止,並立即返回。然後Git認爲你已經完成編輯文件並執行rebase。這就是爲什麼你看到在你甚至編輯文件之前的消息,你可以看到

Successfully rebased and updated refs/heads/staging 

消息。改爲使用subl命令,該命令專爲此目的而設計。 github help告訴你配置它與

git config --global core.editor "subl -n -w" 
+0

立即應用rebase命令立即並使該文件再次保存。不幸的是,保存後它仍然不會繼續。 – 2015-12-04 08:55:09

+0

好的,我找到了解決方案,你不但需要保存文件,還需要關閉編輯器。 Sry,不知道,這裏是更多的信息的話題: http://stackoverflow.com/questions/22631863/setting-up-sublimetext-3-as-git-commit-text-editor – 2015-12-04 09:27:29