26

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

4

11 回答 11

33

如该线程所示,这通常是磁盘空间问题:

$ git status
fatal: unable to write new_index file

我发现的一个原因是我的文件系统空间不足。
查找具有以下内容的大型目录有助于清理一些狂奔的日志文件:

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

注意:您也可以看到它

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

是的,看起来 Windows Defender 又来了。我总是忘记禁用那个该死的东西。我不敢相信它是多么破碎。在家破坏蓝光播放,在工作中破坏 Git...

于 2010-09-15T06:02:59.633 回答
13

如果您使用的是 TortoiseGit,这个错误(或者最近:错误:无法写入索引。)很可能是由于启用了TortoiseGit 图标覆盖造成的。要禁用图标覆盖,请转到:

TortoiseGit > 设置 > 图标叠加

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

于 2012-02-21T19:40:02.667 回答
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]

于 2011-12-20T10:32:11.983 回答
4

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

于 2010-09-15T06:01:43.210 回答
4

我有同样的问题。在我的情况下,上述解决方案不起作用。

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

希望这可以帮助某人。

于 2015-12-14T19:47:09.350 回答
3

我在这里遵循了所有解决方案,但都没有奏效。我不缺磁盘空间,我禁用了 Windows Defender,禁用了图标覆盖等等。我有大量文件要导入,也许这是导致问题的原因(我有boost图书馆等)。

我只是打开了“Git Bash”并发出了一些git add和一个git commit,一切顺利。这与 TortoiseGit 有关,但我不确定是什么。它似乎会因大量文件或大目录深度而窒息。

于 2012-06-07T13:32:36.547 回答
3

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

$ 混帐 gc

于 2014-11-26T09:41:02.653 回答
3

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

为了解决它,我:

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

希望这可以帮助!

于 2017-02-03T02:18:09.470 回答
1

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

于 2012-06-20T22:55:34.613 回答
1

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

于 2018-09-11T10:23:26.083 回答
0

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

于 2012-06-08T03:01:06.740 回答