Git - фатальный: невозможно создать '/path/my_project/.git/index.lock': файл существует

Я все еще получаю это сообщение об ошибке, когда пытаюсь переместить дерево моего проекта в git repo.

Я проверил разрешения моего каталога с этим проектом, и они установлены на 777. В терминале в каталоге с my_project я установил:

мерзавец

а потом если я попробую

мерзавец добавить.

или же

git commit -m "первая загрузка"

так что я получу ошибку

fatal: Unable to create '/path/my_proj/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

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

В чем причина проблемы?

Ответ 1

Try

rm -f ./.git/index.lock

В вашем каталоге репозитория. Сообщение об ошибке довольно явно относится к тому, что вызывает его, поэтому, если у вас нет других git процессов, выполняющихся (что является нормальным случаем), продолжайте и удалите этот файл.

Ответ 2

В Windows сделайте это в командной строке из каталога репо:

cd .git
del index.lock

ОБНОВЛЕНИЕ: я обнаружил, что мне не нужно делать эту процедуру, если я подожду некоторое время после закрытия файлов, над которыми я работаю, прежде чем попытаться переключить ветки. Я думаю, что иногда эта проблема возникает из-за того, что git догоняет медленную файловую систему. Другие, более осведомленные в git разработчики могут вмешаться, если они думают, что это правильно.

Ответ 3

Попробуйте отказаться от Xcode - так как это клиент git, вам нужно выйти из Xcode, чтобы избежать проблем с git в командной строке.

Ответ 4

У меня была такая же проблема. Я старался

rm -f ./.git/index.lock 

и консоль выдала мне сообщение об ошибке. Затем я попробовал

rm --force ./.git/index.lock

и это сработало.

Удачи! Это работает супер

Ответ 5

В моем каталоге .git не было файла index.lock. Итак, используя оболочку Git Bash, я побежал...

cd .git
touch index.lock

Команда touch создала файл, и проблема исчезла.

Ответ 6

Вы случайно создали хранилище, используя пользователя root?

Просто так получилось, что я создал репозиторий git от имени пользователя root.

Я удалил репозиторий git и создал его снова без sudo и он работает.

Ответ 7

У меня тоже есть эта проблема, и я нахожу ее действительно проблемой разрешения. поэтому я делаю это:

sudo chown -R : .git #change group
sudo chmod -R 775 .git #change permission

тогда ererything отлично, и gaa - успех.

а затем я использую gp, я получаю еще одну ошибку почти с той же ошибкой

sudo chown -R "${USER:-$(id -un)}" . #use this can fix the problem

Ответ 8

В Mac OS X выполните это в командной строке из каталога репо:

cd .git
rm index.lock

Ответ 9

Если вы используете одну из ID20 и получаете это сообщение (я использую #webtorm), обратите внимание, что эта проблема может возникнуть из-за сокрытия одной из папок проекта (внутри настроек), и это может предотвратить GIT от слияния.

Ответ 10

Если после попытки:

rm -f./. git/index.lock

вы получаете:

rm: невозможно отменить "index.lock": Permission denied

Попробуйте закрыть все программное обеспечение, которое может использоваться Git. У меня было Source Tree и Visual Studio, и после закрытия обе команды работали.

Ответ 11

В Windows мне удалось удалить файл блокировки после Ending Task для всех Git Windows (32-битных) процессов в диспетчере задач.

Решение (Win 10)

1. Завершить задачу для всех Git процессов Windows (32 бит) в диспетчере задач

2. Удалите файл .git/index.lock

Ответ 12

В моем случае решение должно было ждать 5 минут. Очевидно, что моя предыдущая операция продолжалась, но я просто этого не знал. Я использовал черепаху git на окнах.

Ответ 13

Используйте это:

rm -Force ./.git/index.lock

Ответ 14

Решение, которое сработало для меня, заключалось в том, чтобы закрыть возвышенный текст, потому что запущенный процесс git был инициирован редактором.

Ответ 15

Я думаю, что есть лучшее решение, чем удаление файла (и бог знает, что будет дальше при удалении/создании файла с помощью sudo):

git gc

Ответ 16

У вас проблема с .git/index.lock поэтому удалите его, используя приведенную ниже команду.

Команда:

sudo rm -rf.git/index.lock

Ответ 17

Если это подмодуль, попробуйте это вместо этого в вашем каталоге репозитория:

rm -f ../.git/modules/submodule-name/index.lock

измените имя подмодуля на имя вашего подмодуля.

Ответ 18

Разрешение для этой проблемы заключается в копировании трех файлов xcode/project в каталог, а затем создании нового каталога (Whreever else), а затем вставки трех файлов/каталогов.

Ответ 19

Также мы можем просто убить процесс git. Я получаю ту же проблему через GUI-приложение для git, что-то не так, и git делает некоторую работу бесконечно. Процесс Killing заморозит приложение, которое работает с git, просто перезагрузите его, и все будет в порядке.

Ответ 20

Если по какой-либо причине вы делаете переустановку из папки, которая синхронизируется облачной службой (dropbox, drive, onedrive и т.д.), вы должны приостановить или отключить синхронизацию, поскольку это будет мешать разрешениям во время rebase.

Ответ 21

Для меня это было

rm -r .git-credentials.lock 

Ответ 22

Я изменил свое разрешение на директорию, поэтому я знал, что это может быть связано с разрешением. В моем случае я удалил ненужных (_www) пользователей, а затем применил права на чтение/запись для всех, применив изменения ко всему содержимому. Это на Mac

Разрешение каталога на Mac

Ответ 23

Все команды удаления не работали для меня, что я сделал, чтобы перемещаться туда, используя путь, указанный в git, а затем удаляя его вручную.

Ответ 24

НЕ ИСПОЛЬЗУЙТЕ плагин Atom platformio-atom-ide-terminal для этого. ИСПОЛЬЗУЙТЕ ТЕРМИНАЛ ВАШЕГО ДИСТРО ПРЯМО.

Я продолжал получать эту ошибку, в то время как rebasing/squishing комментирует и не знал почему, потому что я делал это несколько раз.

Не важно, сколько раз я удалял файл index.lock, каждый раз, когда он терпел неудачу.

Оказывается, это потому, что я использовал плагин терминала ATOM EDITOR. Как только я использовал терминал, который поставляется с Ubuntu, он работал как шарм.

Ответ 25

Я пробовал это многими способами несколько раз, но этот работал для меня (я использовал терминал PyCharm):

$ cd .git/

$ rm -f index.lock

Затем я снова попытался создать пустой репозиторий:

$ git init

$ git add .

$ git commit -m "commit msg"

Ответ 26

просто перейдите в D: /project/androidgc/.git/этот каталог и удалите index.lock, это сработало для меня.

Ответ 27

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

  • Оформить заказ мастер ветки.
  • git svn rebase (на мастере)
  • Оформите ветку, над которой вы работали
  • git svn rebase

Ответ 28

Небольшое добавление, потому что мне пришлось использовать разные ответы, чтобы получить реальное решение (для меня).

Это сделало это для меня:

  1. Открытая ветка, над которой вы работаете
  2. Открытый терминал (я использую терминал в Git GUI)
  3. Введите в команду: cd.git
  4. rm -f index.lock команду: rm -f index.lock

Некоторым, возможно, придется использовать -force вместо -f. Вы можете проверить командные строки вашего терминала, выполнив команду в вашем терминале что-то вроде: git help.

Ответ 29

Попробуйте запустить cmd от имени администратора. Это решило мою проблему.