GIT:提交时“致命:无法写入new_index文件”

问题描述 投票:22回答:11

当我尝试将更改提交到本地repo时,我收到以下消息: 致命:无法写入new_index文件

git tortoisegit
11个回答
29
投票

作为这个thread illustrates,这通常是磁盘空间问题:

$ git status
fatal: unable to write new_index file

我发现的一个原因是我的文件系统空间不足。 使用类似下面的内容查找大型目录有助于清理一些运行狂野的日志文件:

$ du -h / | grep ^[0-9.]*G

注意:你也可以看到它

问题仍然存在,所以我从Sysinternals Suite运行文件监视器。 似乎Eclipse不断访问索引文件并阻止命令行git

是的,看起来像Windows Defender再次罢工。我总是忘记禁用那该死的东西。我无法相信它是多么破碎。破坏家中的蓝光播放,打破Git的工作......


0
投票

对我来说这是一个文件锁定问题。

解决它我:

  1. 复制索引文件(位于隐藏的“.git”文件夹中)
  2. 删除了原文
  3. 将副本重命名为'index'

希望这可以帮助!


0
投票

我在macOS上遇到了同样的问题,我通过删除repo_folder/.git/index.lock解决了这个问题


14
投票

如果您正在使用TortoiseGit,则此错误(或更近期:错误:无法编写索引。)很可能是由启用TortoiseGit图标叠加引起的。要禁用图标叠加,请转到:

TortoiseGit>设置>图标叠加

并将状态缓存设置为无。这可以在TortoiseGit的未来版本中修复,但是现在它似乎很常见。


7
投票

当我合并一个安装了sshfs的git repo时,我遇到了同样的错误。任何地方都不乏空间。

在我的例子中,解决方案是在sshfs mount命令中添加-o workaround = rename选项。

像这样:sshfs -o idmap = user -o uid = [lokal uid] -o gid = [lokal gid] -o workaround = rename [host]:[mountpoint]


3
投票

我找到了解决方案。只需要释放一些磁盘空间。


3
投票

我在这里遵循了每个解决方案,但没有一个能够奏效。我不缺磁盘空间,我已禁用Windows Defender,禁用图标叠加等等。我有大量的文件要导入,也许这导致了问题(我有boost库等)。

我只是打开“Git Bash”并发布了一些git addgit commit,一切顺利。这与TortoiseGit有关,但我不确定是什么。它似乎扼杀了大量的文件或大目录深度。


3
投票

我使用Cygwin和git-svn得到了这个错误。对我有用的解决方案是进行垃圾收集(当时看起来很奇怪):


$ git gc


2
投票

我有同样的问题。在我的情况下,上述解决方案无效。

这个错误背后的原因是文件.git/index由于某种未知原因而被破坏。我只是将文件重命名为其他内容并运行'git add'。来自git bash的命令,它工作正常。

希望这有助于某人。


1
投票

我遇到了这个问题,但我能够使用msysgit。我更新了tortoisegit,并且还注意到我的msysgit版本与tortoise git不同步。我不确定最新版本是否修复它,或者是否因为有不同版本的龟和msysgit。无论如何,另一件事要检查。这一切都在将它们更新到TortoiseGit 1.7.10.0 git version 1.7.10.msysgit.1后开始工作


0
投票

我在Unlocker上使用.git\index.lock来解锁其他进程保持打开的任何句柄。在我的情况下,它是TGitCache.exe。

© www.soinside.com 2019 - 2024. All rights reserved.