Git - fatal: невозможно создать '/path/my_project/.git/index.lock': файл существует - PullRequest
719 голосов
/ 22 октября 2011

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

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

git init

и затем, если я попытаюсь

git add.

или

git commit -m "first upload"

, поэтому я получу сообщение об ошибке

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.

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

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

Ответы [ 29 ]

1561 голосов
/ 22 октября 2011

Попробуйте

rm -f ./.git/index.lock

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

147 голосов
/ 10 марта 2014

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

cd .git
del index.lock

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

30 голосов
/ 23 июля 2012

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

20 голосов
/ 14 мая 2015

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

rm -f ./.git/index.lock 

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

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

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

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

15 голосов
/ 25 мая 2016

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

cd .git
touch index.lock

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

10 голосов
/ 27 сентября 2015

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

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

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

8 голосов
/ 01 декабря 2016

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

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

тогда все прекрасно, а гаа - это успех.

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

sudo chown -R "${USER:-$(id -un)}" . #use this can fix the problem
6 голосов
/ 12 апреля 2016

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

cd .git
rm index.lock
5 голосов
/ 13 октября 2016

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

rm -f ./.git/index.lock

вы получите:

rm: Невозможно отменить привязку index.lock: Отказано в доступе

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

5 голосов
/ 18 февраля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...