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

时间:2010-09-15 05:59:54

标签: git tortoisegit

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

11 个答案:

答案 0 :(得分: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的工作......

答案 1 :(得分:14)

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

TortoiseGit>设置>图标叠加

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

答案 2 :(得分: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)

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

答案 4 :(得分:3)

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

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

答案 5 :(得分:3)

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


$ git gc

答案 6 :(得分:2)

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

此错误背后的原因是文件.git/index因某些未知原因而损坏。我只是将文件重命名为其他内容并运行'git add'。来自git bash的命令,它起作用了。

希望这有助于某人。

答案 7 :(得分:1)

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

答案 8 :(得分:0)

我在.git\index.lock上使用了Unlocker来解锁其他进程保持打开的句柄。就我而言,它是TGitCache.exe。

答案 9 :(得分:0)

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

要解决它我:

  1. 复制索引文件(位于隐藏的" .git"文件夹中)
  2. 删除了原始
  3. 将副本重命名为' index'
  4. 希望这有帮助!

答案 10 :(得分:0)

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

解决了这个问题