GIT: «роковая: невозможно записать файл new_index» во время коммита - PullRequest
22 голосов
/ 15 сентября 2010

Когда я пытаюсь зафиксировать изменения в локальном репо, я получаю следующее сообщение:
неустранимый: невозможно записать файл new_index

Ответы [ 11 ]

29 голосов
/ 15 сентября 2010

Поскольку этот поток иллюстрирует , обычно это проблема дискового пространства:

$ git status
fatal: unable to write new_index file

Одна из причин, которую я обнаружил, заключалась в том, что моей файловой системе не хватило места. Поиск больших каталогов с чем-то вроде следующего помог очистить некоторые файлы журнала, которые были запущены:

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

Примечание: вы также можете увидеть это для

Проблема все еще осталась, поэтому я запустил File Monitor из Sysinternals Suite.
Похоже, что Eclipse постоянно обращается к файлу индекса и блокирует командную строку git

Да, похоже, Защитник Windows снова наносит удар. Я всегда забываю отключить эту чертову вещь. Я не могу поверить, насколько это сломано. Уничтожает воспроизведение Blu-ray дома, ломает Git на работе ...

14 голосов
/ 21 февраля 2012

Если вы используете TortoiseGit, эта ошибка (или более поздняя: ошибка: невозможно записать индекс. ) очень вероятно вызвана включением значков наложения TortoiseGit .Чтобы отключить наложение значков, перейдите к:

TortoiseGit> Настройки> Наложения значков

и установите Кэш состояния на Нет ,Это может быть исправлено в будущей версии TortoiseGit, но сейчас это кажется распространенным явлением.

7 голосов
/ 20 декабря 2011

Я получал ту же ошибку при слиянии git-репозитория, который был смонтирован как sshfs.Везде не было недостатка места.

В моем случае решение было добавить опцию -o workaround = rename в команду монтирования sshfs.

Примерно так: sshfs -o idmap = user-o uid = [lokal uid] -o gid = [lokal gid] -o обходной путь = переименовать [хост]: [точка монтирования]

3 голосов
/ 26 ноября 2014

Я получил эту ошибку, используя Cygwin и git-svn.Решение, которое работало для меня, состояло в том, чтобы сделать сборку мусора (странным, как это казалось в то время):


$ git gc

3 голосов
/ 07 июня 2012

Я следовал каждому решению здесь, и ни одно из них не сработало. У меня нет недостатка в дисковом пространстве, я отключил Защитника Windows, отключил наложение значков и еще много чего. У меня были тонны файлов для импорта, и, возможно, это было причиной проблемы (помимо прочего, у меня были boost библиотеки).

Я просто открыл "Git Bash" и выдал число git add и git commit, и все прошло хорошо. Это как-то связано с TortoiseGit, но я не уверен, что именно. Кажется, он захлебывается большим количеством файлов или большой глубиной каталогов.

3 голосов
/ 15 сентября 2010

Я нашел решение. Просто нужно освободить место на диске.

2 голосов
/ 14 декабря 2015

У меня была такая же проблема. В моем случае вышеуказанные решения не сработали.

Причиной этой ошибки является то, что файл .git/index был поврежден по неизвестной причине. Я просто переименовал файл во что-то другое и запустил «git add». команда из git bash и все заработало.

Надеюсь, это кому-нибудь поможет.

1 голос
/ 21 июня 2012

У меня была эта проблема, но я смог зафиксировать с помощью msysgit. Я обновил tortoisegit, а также заметил, что моя версия msysgit не была синхронизирована с git. Я не уверен, что последняя версия исправила это, или это было из-за разных версий черепахи и msysgit. Во всяком случае, еще одна вещь, чтобы проверить. Все начало работать после обновления их обоих до TortoiseGit 1.7.10.0 git version 1.7.10.msysgit.1

0 голосов
/ 11 сентября 2018

У меня была такая же проблема на macOS, я решил ее, удалив repo_folder/.git/index.lock

0 голосов
/ 03 февраля 2017

Для меня это была проблема блокировки файлов.

Чтобы решить это я:

  1. Скопирован индексный файл (находится в скрытой папке ".git")
  2. Удалил оригинал
  3. Переименована копия обратно в 'index'

Надеюсь, это поможет!

...