Git - fatal: невозможно создать '/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.

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

Может ли кто-нибудь помочь мне, пожалуйста, в чем причина проблемы?

Миллион раз спасибо!

34 ответа

Решение

Пытаться

rm -f ./.git/index.lock

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

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

cd .git
del index.lock

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

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

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

cd .git
touch index.lock

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

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

rm -f ./.git/index.lock 

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

rm -Force ./.git/index.lock

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

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

Вам необходимо удалить файл index.lock.

В Linux

      cd .git
rm -f index.lock

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

      cd .git
del index.lock

Просто так получилось, что я создал git-репозиторий с root пользователь. Я удалил репозиторий git и создал его снова без sudo и это работает.

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

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

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

Решение (Win 10)

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

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

  1. Запустите диспетчер задач, найдите Git для процесса Windows и убейте его.
  2. Удалите файл index.lock в папке .git
  3. У меня это сработало!

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

cd .git
rm index.lock

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

Если после того, как вы попробуете:

rm -f./.git/index.lock

ты получаешь:

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

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

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

git gc

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

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

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

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

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

Использовать этот:

rm -Force ./.git/index.lock

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

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

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

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

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

$ cd .git/

$ rm -f index.lock

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

$ git init

$ git add .

$ git commit -m "commit msg"

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

Команда:

sudo rm -rf.git / index.lock

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

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

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

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

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

rm -r .git-credentials.lock 

В случае, если по какой-либо причине вы выполняете перебазирование из папки, которая синхронизируется облачной службой (Dropbox, Drive, Onedrive и т. Д.), Вы должны приостановить или отключить синхронизацию, так как это повлияет на разрешения во время перебазирования.,

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

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

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

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

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

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

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

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

Другие вопросы по тегам