Git没有任何理由崩溃

时间:2014-04-18 17:51:39

标签: git

我最近将我的Ubuntu本地服务器升级到14.04。我不知道它是否与升级有关,但事情是以前没有这样的问题。问题是,

enter image description here

用Google搜索此问题,发现删除此文件将解决问题。删除了index.lock文件。得到错误:

error: bad signature
fatal: index file corrupt

试图git reset。重置后,尝试添加,提交和推送。首先尝试顺利。它毫无问题地推动了提交。但第二次尝试,同样的问题。

试图删除回购并再次克隆。试图chown -R root:root /var/wwwchmod -R 777 .git/项目。我甚至重新安装了OS ubuntu 14.04服务器。现在又出现相同的错误消息

有什么建议吗?下一步做什么?

4 个答案:

答案 0 :(得分:4)

尝试删除索引文件本身然后重置,如下所示:

$ cd <your repo>
$ rm .git/index
$ git reset

这应该重建你的索引。

答案 1 :(得分:2)

检查正在运行的锁定文件的进程:

sudo lsof /var/www/XXXXXXXXXXX/.git/index.lock

如果没有进程正在使用该文件,请考虑重新启动系统,如果不起作用则删除该文件。之后,备份您的工作并运行git reset。使用git fsck --full验证存储库的对象。

答案 2 :(得分:1)

在您的存储库中运行以下命令:

rm -rf .git/index
git reset --hard HEAD

答案 3 :(得分:1)

关于你的问题的奇怪之处在于你的git repo在公共场所/ var / www中,或许你已经启用了其他服务(例如,web服务文件系统),允许更新/ var / www中的文件。我建议将repo克隆到像/ home / heron / private / git0这样的东西,然后看看它是否在那里表现。

你可以做的另一件事是创建一个源自文件系统文件的文件系统,安装它然后尝试git。这很有趣,因为它会强制您检查文件系统选项。

例如,我曾经有过一次检查linux repo的奇怪问题,这种方法帮助我找出了问题(对于linux,你需要一个区分大小写的文件系统作为linux内核中的文件安装可能因为单独的情况而有所不同)。您的问题在性质上可能有所不同,但此处显示的实验方法可能仍然有效。