2012-02-03 90 views
15

,因为我尽职尽责地制作一个nice, descriptive commit message,我得到一个错误:混帐:恢复失败的每一个现在,然后提交的留言

".git/COMMIT_EDITMSG" 81L, 2108C written 
error: There was a problem with the editor 'vim'. 
Please supply the message using either -m or -F option. 

注意这通常是:wq后。我检查了.git/COMMIT_EDITMSG文件,它没有改变。 git是否有另一个地方保存此消息,以便我可以恢复它并尝试再次提交?人们对这个问题有经验,知道它为什么会发生在我身上?我没有问题写入其他文件和权限似乎是为了。

+0

你有没有试过寻找vim的备份文件? – freitass 2012-02-03 18:33:52

+1

那会是.git/.COMMIT_EDITMSG.swp?是的,那里没有运气。 – devoid 2012-02-03 19:19:20

+5

我没有恢复提交消息的解决方案,但我可能知道为什么会出现此错误。我在工作时在我的Mac上看到这种行为,但在家里的Linux上看不到这种行为。如果我在尝试保存提交消息时意外键入“:Wq”,当我回到并键入“:wq”时,提交失败。 – haydenmuhl 2012-02-03 21:35:40

回答

6

当你处于这种状态时,不确定就在COMMIT_EDITMSG上的git。如前所述,您可能会看到vim是否保存了它。但我的理解是,vim的默认设置是删除备份,除非您明确告诉它保留它们。另外,如果您不希望将这些文件分散到您的目录中,则可以指定一个目录将其放入(您可能必须先手动创建目录)。

尝试添加以下两行到你的〜/ .vimrc文件:

backup 
backupdir=~/.vim/backup 

手动创建〜/ vim的/ backup目录,然后编辑一个文件并退出。您应该在备份目录的名称末尾看到带有“〜”的文件副本。

请注意,如果您和我一样懒,请使用“:x”退出vim而不是“:wq”。 “:x”既可以写入也可以退出。

+4

'ZZ'比evem更好' :x ' – 2012-02-13 21:45:35