Git无缘无故崩溃了

Git无缘无故崩溃了,git,Git,我最近将Ubuntu本地服务器升级到14.04。我不知道这是否与升级有关,但事情是,以前没有这样的问题。问题是, 谷歌搜索了这个问题,发现删除这个文件可以解决这个问题。已删除index.lock文件。出现错误: error: bad signature fatal: index file corrupt 试图重新设置git。重置后,尝试添加、提交和推送。第一次尝试很成功。它毫无问题地推动了提交。但第二次尝试,同样的问题再次出现 尝试删除回购并再次克隆。试图从项目的chmod-R 777.git

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

谷歌搜索了这个问题,发现删除这个文件可以解决这个问题。已删除index.lock文件。出现错误:

error: bad signature
fatal: index file corrupt
试图重新设置git。重置后,尝试添加、提交和推送。第一次尝试很成功。它毫无问题地推动了提交。但第二次尝试,同样的问题再次出现

尝试删除回购并再次克隆。试图从项目的chmod-R 777.git/下载n-R root:root/var/www。我甚至重新安装了操作系统ubuntu 14.04服务器。现在再次显示相同的错误消息


有什么建议吗?接下来要做什么?

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

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

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

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

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

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

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

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

这将重建索引。

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

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

这将重建索引。

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

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

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

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

关于您的问题,奇怪的是,您的git repo位于公共场所/var/www,从这个意义上说,您可能启用了其他服务,例如允许更新/var/www中的文件的web服务文件系统。我建议将repo克隆到类似/home/heron/private/git0的东西中,然后查看它是否在那里运行

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


例如,有一次我在检查linux repo时遇到了奇怪的问题,这种方法帮助我解决了linux的问题,你需要一个区分大小写的文件系统,因为linux内核中的文件可能会因大小写的不同而不同。你的问题可能性质不同,但是这里展示的实验方法可能仍然有效。

关于您的问题,奇怪的是您的git repo位于公共场所/var/www,从这个意义上讲,您可能启用了其他服务,例如web服务的文件系统,允许更新/var/www中的文件。我建议将repo克隆为类似的内容/home/heron/private/git0,然后查看它在那里是否正常工作

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


例如,有一次我在检查linux repo时遇到了奇怪的问题,这种方法帮助我解决了linux的问题,你需要一个区分大小写的文件系统,因为linux内核中的文件可能会因大小写的不同而不同。您的问题可能在性质上有所不同,但此处所示的实验方法可能仍然有效。

您是否看到您的机器上出现了其他奇怪的无法解释的崩溃、奇怪的错误消息?听起来RAM可能会坏掉,而git恰好是为数不多的检查数据完整性并首先注意到损坏的东西之一。如果您运气不好,则可能会有其他数据被悄悄损坏。我首先用memtest86在您的机器上测试RAM。@ArtemB这是virtualbox机器。另外,我重新创建了这台机器并重新安装了osI。我会检查主机的RAM,如果它在您的控制之下。或者,如果您有另一台物理机器,请查看问题是否可在那里重现。如果是的话,那就是git软件或您的系统设置有问题。如果问题只发生在一台物理机器上,则可能与硬件有关。+1因为您的问题显示了大量故障排除,并且您为这样一个小问题重新安装了O/s。@Jimbo it停止了我的整个工作流,您认为这是个小问题吗?如果对你来说很小,那么很好,帮助解决。但我认为这是ubuntu 14.04和git current Release之间的一个大的不兼容问题。你在你的机器上看到了其他奇怪的、无法解释的崩溃和奇怪的错误消息吗?听起来RAM可能会坏掉,而git恰好是为数不多的检查数据完整性并首先注意到损坏的东西之一。如果您运气不好,则可能会有其他数据被悄悄损坏。我首先用memtest86在您的机器上测试RAM。@ArtemB这是virtualbox机器。另外,我重新创建了这台机器并重新安装了osI。我会检查主机的RAM,如果它在您的控制之下。改变
当然,如果你有另一台物理机器,看看这个问题是否在那里重现。如果是的话,那就是git软件或您的系统设置有问题。如果问题只发生在一台物理机器上,则可能与硬件有关。+1因为您的问题显示了大量故障排除,并且您为这样一个小问题重新安装了O/s。@Jimbo it停止了我的整个工作流,您认为这是个小问题吗?如果对你来说很小,那么很好,帮助解决。但我认为在重启同一版本后,ubuntu 14.04和git current Release之间存在很大的不兼容性问题。删除文件并不能解决问题,获取错误签名。请仔细阅读我的问题。我已经试过了,即使再次克隆回购协议也不行help@heron您确实尝试过git重置或git fsck-已满?你问题的内容无法说明问题。不是git fsck-已满。它能做什么?每次我需要做git重置来解决这个崩溃问题?很抱歉,这并不能解决问题的根源。如果这种情况甚至发生在repo克隆之后,那么我认为问题的根源就在于GitIt本身和Ubuntu14。04@heron问题不在于ubuntu,至少会发送数千封愤怒的邮件。git fsck将验证数据库中对象的连接性和有效性。我严重怀疑git是罪魁祸首,更有可能是您试图克隆的存储库。在重新启动相同问题后。删除文件并不能解决问题,获取错误签名。请仔细阅读我的问题。我已经试过了,即使再次克隆回购协议也不行help@heron您确实尝试过git重置或git fsck-已满?你问题的内容无法说明问题。不是git fsck-已满。它能做什么?每次我需要做git重置来解决这个崩溃问题?很抱歉,这并不能解决问题的根源。如果这种情况甚至发生在repo克隆之后,那么我认为问题的根源就在于GitIt本身和Ubuntu14。04@heron问题不在于ubuntu,至少会发送数千封愤怒的邮件。git fsck将验证数据库中对象的连接性和有效性。我严重怀疑git是罪魁祸首,更有可能是您试图克隆的存储库。