Похоже, в этом хранилище запущен другой git-процесс

668

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

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.

Конечно, я столкнулся с проблемами, пытаясь зафиксировать свой пустой проект ранее, и просто вышел из git bash, так как я не знал, как выбраться из того, что я каким-то образом получил.

Есть ли способ для меня это исправить или я должен просто начать новый репозиторий?

Мэтт Корби
источник
1
Кажется, что определенно существует другой процесс, выполняющий rn, возможно, на другой вкладке терминала?
Винсент Родомиста
Откройте диспетчер задач и посмотрите, что еще работает. Вы также можете использовать Process Explorer, если он у вас установлен.
Тим Бигелайзен
Попробуйте использовать git bash, командную
строку

Ответы:

1299

Попробуйте удалить index.lockфайл в вашем .gitкаталоге.

rm -f .git/index.lock

Такие проблемы обычно возникают, когда вы выполняете две gitкоманды одновременно; возможно один из командной строки и один из IDE.

Rohit Shedage
источник
7
Я получил следующую ошибку: rm: не могу удалить «.git / index.lock»: устройство или ресурс заняты
Yuvraj Patil
8
удалить сrm -f .git/index.lock
Уильям Хэмпшир
Для CocoaPods попробуйте удалить Podfile.lock.
LinusGeffarth
1
Работал на меня тоже, спасибо. Интересно, почему этот ответ еще не помечен как принятый? Последовательность команд: 1) найти | Grep '\ .lock $' 2) гт -f ./.git/index.lock
Ankush
5
Если там нет index.lockфайла, проверьте для HEAD.lock· Удаление это решило проблему для меня.
Даниэль Шац
64

Используйте приведенную ниже команду в корневом каталоге приложения. Это удалит файл index.lock и снимет активную блокировку.

rm .git/index.lock
MJ
источник
Мне также пришлось закрыть Sublime-Text, потому что там был плагин git. Другая IDE, связанная с git, вероятно, имеет ту же проблему
Ник Carraway
31

Удаление моего сообщения о фиксации сработало для меня.

rm .git/COMMIT_EDITMSG

Затем он сказал.

fatal: не удается заблокировать ref 'HEAD': невозможно создать '.git / refs /heads / [your-branch-name] .lock': файл существует.

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

rm .git/refs/heads/[your-branch-name].lock

Надеюсь, это кому-нибудь поможет.

Ибн Рушд
источник
3
это то, что помогло мне, другие ответы ничего не сделали для меня.
CodyMace
1
Это сработало, когда я попытался зафиксировать с помощью docker-compose в фоновом режиме.
Джон Спитери
15

Хорошо, в итоге я заставил его работать, запустив '$ git rm .git / index.lock' ... Это странно, потому что я делал это несколько раз, но безрезультатно, но, эй, компьютеры, верно?

Мэтт Корби
источник
5
Не нужно использовать git rmздесь, просто rmдостаточно. index.lockэто не файл, предназначенный для отслеживания с помощью git.
Матье Мой
8

Это случилось со мной, и хотя sourcetree продолжала говорить мне, что файл блокировки существует, такого файла для меня не было. Поэтому я просто выбрал другую ветку, а затем вернулся в исходную ветку и заметил, что это изменение исправило проблему.

Алекс Сед
источник
7

Это похоже на вышеуказанные методы, но в моем случае у меня было несколько из тех

.git/refs/heads/<branch_name>.lock

и был в состоянии удалить все сразу таким способом

find -name "*.lock" -exec xargs rm {} \;
Акиф
источник
4

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

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

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

Вреж Гулян
источник
4

Если вы используете CocoaPods и в какой-то момент испортили обновление или установку (вручную убили его или что-то), попробуйте

1) Удаление index.lockфайла (в .git/index.lock)

2) Удалить ваш Podfile.lockфайл.

3) сделать новый pod update

4) Попробуйте выполнить команду git, которая не удалась (в моем случае это была git add .)

cumanzor
источник
4

Если вы пользователь Windows, будет ошибка 'rm' is not recognized as an internal or external command. Это потому, что rm - это команда Linux. Таким образом, в Windows, вы можете использовать ниже, чтобы удалить index.lockфайл внутри .gitпапки

del -f .git/index.lock
Индраджит Эканаяке
источник
3

Возможно, ваша ветка повреждена. Создайте новую ветку git branch #check branch. Я создал новую ветку и работаю.

branch -b "main"
git checkout -b "main"  #main is new branch
git add .
git commit -m "all files"
git remote add origin #**YOUR REPO**  https://github.com/tarun-techmarbles/wp-dump-sql-git-push.git
git push origin main  #push with new branch 
Тарун Шарма
источник
3

Хотя есть альтернатива выше, но это не решило мою. В моем случае я удаляю плагин "git" в ./zshrc и перезагружаю компьютер, после чего проблема исчезла, я думаю, что плагин zsh сделал что-то, противоречащее оригинальной команде git.

Брэди Хуан
источник
3

Я получил эту ошибку, пока pod update. Я решил ее, удалив index.lockфайл в cocoapods«S .gitкаталоге.

rm -f /Users/my_user_name/.cocoapods/repos/master/.git/index.lock

Это может кому-то помочь.

Хасиб Икбал
источник
2

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

rm -f .git / index.lock

git reset и после команды сброса использовать git status, git add и git commit -a или git commit -m "ваше сообщение", git push origin master.

Нэвин
источник
2

rm -f .git/index.lockне помогло, потому что у меня был заблокированный файл, который нельзя было удалить. Итак, index.lockтакже было захвачено какое-то приложение.

Я скачал альтернативу Unlocker под названием Lock Hunter и удалил оба файла. Gitзахватил их.

CoolMind
источник
2

Я столкнулся с такими же проблемами, когда попытался установить файл в SourceTree.

Чтобы решить эту проблему, перейдите в папку .git в каталоге проекта и вручную удалите index.lock, и все готово.

MayankD
источник
На самом деле я нахожу в SourceTree, что обычно достаточно подождать несколько секунд и повторить попытку.
матовый
2

В случае, если может помочь кому-то еще ... Я пытался с командной строкой rm -f .git/index.lockи не работал (терминал не показывал никакой ошибки). Я просто пошел прямо в папку .gitи удалил index.lockфайл.

Примечание: .gitпапка находится в вашем корневом хранилище и скрыта. В Mac: Cmd+ Shift+, .чтобы увидеть скрытые файлы.

TomCobo
источник
2

Для меня решение было таким же простым, как закрытие моей IDE, а затем проверка. Мой товарищ по команде принял мой PR и объединил код через TFS. Удаление файлов .lock не сработало.

Хлоя Корриган
источник
2

Удалить index.lockздесь:

<path to your repo>/.git/index.lock

Также, если в вашем хранилище есть субмодули, удалите все index.lockздесь:

<path to your repo>/.git/modules/<path to your submodule>/index.lock
Манабу Наказава
источник
1

Я попытался удалить, .git/indexно ничего не вышло, в итоге я удалил go и удалил все папки, в которых есть goимя, а затем снова установил go, и он работал!

Джон Балвин Ариас
источник
1

Для меня по любой причине:

rm .git/index.lock

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

Вадим Ф.
источник
В чем разница между этим ответом и принятым ответом?
Дж. Доу
0

просто для пояснения, для тех, кто интересуется, почему Rm и Del.

rm .git/index.lock - on a unix/linux system
del .git/index.lock - on a windows cmd prompt

Вы можете добавить, -fчтобы заставить операцию, которая работает.

Анд Калеб
источник
0

Я столкнулся с той же проблемой. Я должен был сделать немного больше, чтобы решить это. Сначала я удалил, а index.lockзатем клонировал свежий код из существующего хранилища git. У меня были изменения кода в отдельном месте. Я скопировал .gitпапку и .gitignoreфайл и вставил в папку с кодом, где я сделал изменения кода. Затем я попытался зафиксировать и нажать, все прошло гладко. Может быть, эта информация будет полезна, если ваша проблема не решена с помощью вышеупомянутых решений.

Абхишек
источник
0

Была такая же проблема с использованием SourceTree . Но на моем хосте не было никакого файла index.lock . Я нашел файл pack-refs.lock , и после его удаления проблема была решена.

Владимир
источник
0

Я столкнулся с той же проблемой, проблема заключалась в том, что я пытался отправить свой код с помощью xmlфайла (используемого в качестве набора данных) размером 1,3 ГБ, поэтому я добавляю эти файлы в, .gitignoreа затем проблема решается

Дуланга Хешан
источник
0

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

fatal: cannot lock ref 'HEAD': Unable to create '/<PATH>/<TO>/<REPO>/.git/refs/heads/<BRANCH>.lock': File exists.

В этом случае вы должны удалить этот файл (.lock) вместо .git / index.lock

derekbaker783
источник