2013-03-09 61 views
1

,当我在控制台输入:git的承诺致命错误

git init 
git add . 

一切OK

当我输入:

git commit -m "final" 

我得到:

error: object file .git/objects/18/d50376886bb9702194048cd450960abe40d223 is empty 
error: unable to find 18d50376886bb9702194048cd450960abe40d223 
fatal: 18d50376886bb9702194048cd450960abe40d223 is not a valid object 

什么问题?

+0

也许在目录'18'中没有名为'd50376886bb9702194048cd450960abe40d223'的文件。可能是,它发生是因为在执行'git add .'后,这个文件被删除了。 – stackoverflowery 2013-03-09 07:05:43

回答

0

当您运行git add .时,无论您在当前目录中拥有的新文件和更改的文件都进入了git的版本控制。这就是文件内容被存储为.git/objects下可用的git对象的地方。

在你的情况下,该内容被存储为.git/objects/18/d50376886bb9702194048cd450960abe40d223

问题看起来创造了哈希18d50376886bb9702194048cd450960abe40d223一个新的git对象,你跑git add命令,这个文件既没有得到写入后硬盘驱动器正确,或者可能由于某些硬盘错误而被删除或甚至损坏。

+0

应该怎样解决这个问题?重新安装git或删除所有.git文件? – technobot 2013-03-09 14:30:40

+0

@technobot:首先,制作回购的备份(将整个回购文件夹放入焦油或其他东西);如果你愿意,你可以尝试使用['git fsck'](http://goo.gl/BUB8u)来拯救(http://sethrobertson.github.com/GitFixUm/也可能有帮助);否则,或者如果这不起作用,如果可能的话,重新克隆回购(假设您以前曾将该回购推送到远程) – 2013-03-09 15:07:52