我最近将我的Ubuntu本地服务器升级到14.04。我不知道它是否与升级有关,但事情是以前没有这样的问题。问题是,
用Google搜索此问题,发现删除此文件将解决问题。删除了index.lock文件。得到错误:
error: bad signature
fatal: index file corrupt
试图git reset
。重置后,尝试添加,提交和推送。首先尝试顺利。它毫无问题地推动了提交。但第二次尝试,同样的问题。
试图删除回购并再次克隆。试图chown -R root:root /var/www
,chmod -R 777 .git/
项目。我甚至重新安装了OS ubuntu 14.04服务器。现在又出现相同的错误消息
有什么建议吗?下一步做什么?
答案 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内核中的文件安装可能因为单独的情况而有所不同)。您的问题在性质上可能有所不同,但此处显示的实验方法可能仍然有效。