Когда я делаю 'git commit', я получаю следующее:
fatal: Unable to create 'project_path/.git/index.lock': File exists.
Тем не менее, когда я это делаю, ls project_path/.git/index.lock
он говорит, что файл не существует. Есть мысли о том, что мне делать? Я также заметил, что project_path / .git принадлежит root, не уверен, что это как-то связано с проблемой, с которой я сталкиваюсь.
git версия 1.7.5.4
edit: Кажется, что проблема, скорее всего, была в другом процессе, который я выполнял, который писал (без моего ведома) в каталог проекта. Я перезапустил свою машину, и у меня не было проблем с фиксацией.
Ответы:
Это может быть старый ответ, но я надеюсь, что это будет более полезным для тех, кто нуждается в этом решении.
На linux / unix / gitbash / cygwin попробуйте
rm -f .git/index.lock
В командной строке Windows попробуйте:
del .git\index.lock
источник
fatal: Unable to create 'project_path/.git/index.lock': File exists.
, что «Файл существует», и удаление его будет простым решением. Зачем мне предлагать удалить файл, если его нет даже в исходном вопросе?Для Windows:
источник
На платформе Windows, работающей с Visual Studio 2015 RC (v4.6.00057) в сочетании с SourceTree (v1.6.14.0), эта ошибка также будет отображаться.
Решение. Предполагая, что вы хотите использовать дерево исходного кода в качестве менеджера исходного кода, просто отключите поставщик управления исходным кодом в Visual Studio следующим образом:
источник
источник
пытаться
если у вас нет другого запущенного процесса git, просто удалите файл index.lock соответствующего проекта.
источник
Просто была эта проблема ... Gitbox был виноват. Поэтому, возможно, у вас был запущен графический интерфейс, который вызывал проблемы.
источник
Это происходит, когда вы отменяете вытягивание из источника в середине.
так что вы можете вручную удалить файл index.lock из вашего каталога .git.
Перейдите в каталог проекта и запустите эту команду.
источник
(Если файл создается просто с компакт-диска в это место, то проблема заключается в вашем редакторе. Закройте редактор. Не используйте этот редактор снова для этой задачи. Откройте редактор другого типа - оболочку Windows Power или просто cmd. Теперь вы можете использовать команды git для продолжения)
источник
Возможно (это случилось со мной), команда ls говорит, что она не существует, потому что текущий пользователь не имеет прав доступа к этому каталогу или файлу.
Снимите блокировку и убедитесь, что вы выполняете git с нужным пользователем , чтобы избежать проблем с правами доступа.
Если вы используете GNU / Linux с командой sudo :
источник
ls project_path/.git/index.lock
.del .git\index.lock
работал на меня.Я столкнулся с этой проблемой при оформлении заказа на новую ветку из главной ветки.
Оформить заказ легко произошло после удаления
index.lock
файла.источник
Иногда Git создает файл блокировки, связанный с вашим репо, когда вы вносите какие-либо изменения или, скорее всего, когда вы используете субмодули. Сообщение об ошибке покажет вам путь к файлу блокировки. Исправлено: просто вручную перейдите к пути в терминале и удалите файл блокировки с помощью $ rm index.lock
Это должно помочь.
источник
У меня была эта проблема с SourceTree при переключении ветки двойным щелчком по ней. Проблема не очень распространена и Atlassian знает об этом но они решили не исправлять ее.
К счастью, есть решение. Вместо двойного щелчка по ветви, которую вы хотите переключить, просто щелкните правой кнопкой мыши и выберите «Оформить заказ [название ветви]». Это должно преуспеть сейчас.
источник
Я сталкивался с тем же сценарием. Я даже не сделал никаких изменений в моем локальном коде. Я только что отредактировал файл и восстановил его. Я просто удалил файл ниже в скрытой папке .git. Это сработало!
источник
Если вы на самом деле не хотели, чтобы root владел вашим репозиторием, это звучит так, как будто вы случайно запустили команду Git от имени root (возможно, даже первоначальный клон / init). Если вы хотели это сделать, вам придется смириться с выполнением всех команд Git в репозитории от имени root. Если вы этого не сделали, бегите,
sudo chown your-user[:your-group] -R .git
чтобы завладеть им, а затем посмотрите, все ли работает.источник
.git
и я исправил их с помощью:find .git -type f -exec chmod 644 {} \;
а такжеfind .git -type d -exec chmod 755 {} \;
я испортил режимы при переносе моего проекта git с одного компьютера на другойsudo chmod g+w .git -R
Несколько клиентов git, работающих в одном локальном репозитории, борются за эту блокировку. Каждый клиент должен подождать, пока другая сторона не снимет блокировку, чтобы стать хорошим гражданином. Для нас SourceTree или MSVS, кажется, выполняют некоторую поддержку в фоновом режиме, в то время как мы выполняли большие скрипты фиксации.
Возможно, сам git должен поддерживать аргумент --retriesWhenLocked 5 для поддержки повторов.или даже по умолчанию при запуске вручную.
Вот оболочка PowerShell вокруг git с именем «gitr», которая повторяет попытки до исчезновения index.lock, используя 5 попыток по умолчанию, по 3 секунды между каждым. Он никогда не удаляет index.lock, предполагая, что пользователь должен вмешаться. Он был извлечен из более крупного скрипта коммита. Он имеет только минимальное тестирование с простыми аргументами.
gitr.ps1
источник
У меня также есть этот вопрос в Windows 10.
когда я пытаюсь дель
./.git/index.lock
, он сказал мнеcannot remove 'index.lock': Device or resource busy
Я наконец получил причину:
на компьютере есть два процесса для использования git:
поэтому я использую cmder.exe, чтобы в
git commit
нем возникли ошибки.так что решение использовать
git bash
илиgit bash
прекратить то использовать cmder.exeисточник
У меня была точно такая же ошибка, но проблема была не в файле блокировки. Вместо этого проблема заключалась в том, что я скопировал в это хранилище содержимое другого репозитория git, включая невидимую папку .git. Итак, SourceTree был озадачен тем, в какое хранилище я хотел разместить файлы (существовало несоответствие между тем, в котором я находился, и тем, в котором указывалось содержимое моего встроенного .git dir).
источник
У меня была эта проблема с TortoiseGit с Cygwin на Windows. Я не смог удалить remove ./.git/index.lock даже с правами администратора, я пробовал и Cygwin, и командную строку, в которой говорилось, что файл используется другим процессом.
Я обнаружил, что у меня запущено 2 экземпляра TortoiseProc.exe. Я убил один из них и закрыл все окна Windows Explorer, а затем смог удалить файл. Я не знаю, было ли убийство экземпляра TortoiseProc.exe решением проблемы или закрытием окон проводника Windows.
источник
Решением для меня было удалить файл .index и позволить Git пересобрать другой.
источник
У меня не было файла, не подлежащего удалению, но для меня работало удаление проверки «Только для чтения» из окна «Атрибуты» диалогового окна «Свойства папки».
источник
Я создал пустой файл index.lock, удалил его командой windows
источник
Начиная с git 2.8.4 (июнь 2016 г.) , этого больше не должно происходить.
Смотрите проблему 755, которая также должна облегчить проблему ( commit 2db0641 ):
источник
В моем приложении sourceTree я не могу сделать коммит или переключиться на любой другой коммит / брах. Это время показывает ошибку как
Фатальный: Невозможно создать бла-бла-бла ..
Я просто разрешаю это, перейдя в папку .git (в Project Explorer Dir). И удалите Индекс ----- [тип файла: файл LOCK]. Теперь я получаю обратно все права доступа в sourceTree.
убедитесь, что файл индекса заблокирован. Предположим, вы не получили тип файла, измените настройки просмотра файлов на компьютере. Примечание. Папка .git - это обычно скрытый тип папки.
источник
Что для меня это было:
git rebase --abort
и перезапустите ребаз.Как упоминал Эндрю, я также использовал PHPStorm, когда это произошло. Не нужно было закрывать это все же.
источник
Сначала вам нужно перейти к определенной папке вашего проекта. Например, если имя вашего проекта Firstproject, затем сначала перейдите в каталог проекта. Затем введите cd .git, затем после перехода в папку git введите del index.lock. удаление файла index.lock..Вы сможете коммитить и нажать как раньше
источник
В моем случае это были окна, не закрытые полностью.
Windows находится в режиме гибернации, отказался монтировать
Скорее всего, Windows действительно находится в спящем режиме. Windows делает это автоматически, когда вы говорите, чтобы он выключился нормально. Преимущество заключается в том, что вы получаете более быстрое и очевидное время запуска.
Чтобы завершить работу Windows без использования гибернации, введите в командной строке следующее (в Windows):
Вы также можете включить
/t 0
для немедленного выключения.Я нашел хороший учебник по настройке запуска для этого: Как выполнить полное выключение в Windows 8 без отключения гибридной загрузки.
Более простой подход к фактическому завершению работы Windows состоит в том, чтобы «перезагрузить» (а не «выключить»), но затем перехватить процесс загрузки и загрузить Linux вместо того, чтобы позволить ему загружать Windows.
кредит : нобар
источник
Это также может произойти, если вы используете альтернативный git-клиент из командной строки, например, hub .
Я использовал хаб в качестве альтернативной замены для git в течение нескольких лет, но недавно написал bash-скрипт, который выполняет в нем кучу git, и начал получать эту проблему блокировки индекса.
Я не мог найти починку, пока не вспомнил, что вместо git я запускаю hub. Я удалил это, и проблема ушла!
источник
Получение ошибки:
Но я не смог найти (или удалить) этот файл .git / index.lock.
В моем случае гит-кола была запущена!
Очевидно, что он создает этот файл .git / index.lock время от времени или по причине перебазирования, которое я делал в командной строке и во время которого я получил эту ошибку - так что git-cola явно «мешает» запуску Git из командной строки (или некоторые операции Git CLI).
Это решается закрытием git-cola во время командной строки git rebase.
источник
Иногда другой Git-клиент может вмешиваться, когда установлено несколько приложений.
То есть. убедитесь, что с помощью диспетчера задач или
Get-Process
чтоTGitCache
TortoiseGit не работает в фоновом режиме.источник
У меня недавно была такая же проблема. Если вы проверите все сообщение об ошибке, это также говорит о том, что есть процесс, использующий процесс git, который блокирует вам удаление index.lock. Вы можете открыть IDE, например Visual Studio или связанное с ним программное обеспечение, в которое интегрирован git. Закройте его и попробуйте заново сохранить ваш файл. Надеюсь, поможет.
источник