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
- Запустите диспетчер задач, найдите Git для процесса Windows и убейте его.
- Удалите файл index.lock в папке .git
- У меня это сработало!
В 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
измените имя подмодуля на имя вашего подмодуля.
НЕ ИСПОЛЬЗУЙТЕ атом 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
Небольшое добавление, потому что мне пришлось использовать разные ответы, чтобы получить реальное решение (для меня).
Это сделало это для меня:
- Открытая ветка, над которой вы работаете
- Открытый терминал (я использую терминал в Git GUI)
- Введите в команду:
cd .git
- Введите в команду:
rm -f index.lock
Некоторые могут использовать -Force
вместо -f
, Вы можете проверить командные строки вашего терминала, выполнив команду в вашем терминале что-то вроде: git help
,
В случае, если по какой-либо причине вы выполняете перебазирование из папки, которая синхронизируется облачной службой (Dropbox, Drive, Onedrive и т. Д.), Вы должны приостановить или отключить синхронизацию, так как это повлияет на разрешения во время перебазирования.,
В случае, если кто-то использует git svn, у меня возникла та же проблема, но я не смог удалить файл, так как его там не было!. После проверки прав доступа, касания файла и его удаления, и я не помню, что еще, это помогло:
- Оформить заказ мастер ветки.
- git svn rebase (на мастере)
- Оформите ветку, над которой вы работали
- git svn rebase
Я изменил свое разрешение на каталог, так что я знал, что это может быть связано с разрешением. В моем случае я удалил нежелательных (_www) пользователей, а затем применил разрешение на чтение / запись для всех, применяя изменения ко всему содержимому. Это на маке
Просто перейдите в D:/project/androidgc/.git/ этот каталог и удалите index.lock, это сработало для меня.
Решением этой проблемы является копирование трех файлов xcode/project в каталог, а затем создание нового каталога (в любом месте), а затем вставка трех файлов / каталогов.
Все команды удаления не сработали, поэтому я переместился туда по пути, указанному в git, а затем удалил его вручную.
Также мы можем просто убить git process. Я получаю ту же проблему через приложение GUI для git, что-то идет не так, и git заставляет работать бесконечно. Процесс Killing остановит приложение, которое работает с git, просто перезапустите его, и все будет хорошо.