Ошибка Git SVN: ранее в репозитории произошел сбой процесса Git

97

Я просто пытался зафиксировать изменения в мастере Git. Из того, что я прочитал, кажется, что идея состоит в том, чтобы удалить файл блокировки. В сообщении говорится:

убедитесь, что другие процессы Git не запущены, и удалите файл вручную

Может быть, кто-то знает, какой файл удалить и как удалить?

Пинхас К
источник
1
Не могли бы вы показать полное сообщение об ошибке, включая выполняемую команду?
Schwern
Хотя я использую черепаху. вы можете удалить этот файл в черепахе или только в панцире?
Pinchas K
Возможно, вам придется сделать это в оболочке или в файловом проводнике. Возможно, вам придется показать скрытые файлы.
Schwern
полная ошибка: фатальная: невозможно создать файл «C / etc / .git / index.lock». Если в данный момент не запущен ни один другой процесс git, это, вероятно, означает, что процесс git в репозитории разбился ранее. Убедитесь, что никакой другой процесс git не запущен, и удалите файл вручную, чтобы продолжить.
Pinchas K
5
Сообщение об ошибке говорит само за себя. Удалите C:\etc\.git\index.lockкак любой другой файл.
Schwern

Ответы:

195

Вероятно, .git/index.lockэто файл, о котором идет речь, и его можно безопасно просто удалить, если у вас не запущены другие процессы git . Убедитесь, что команда git-svn не зависает.

PS Мой обычный подход к исправлению проблем с git-svn - это сделать новую загрузку репозитория. Отнимает много времени, но вы можете делать это параллельно с попыткой решить проблему. Поиграйте между вами и мерзавцем. Конечно, это работает только в том случае, если у вас не было неопубликованных коммитов.

Шверн
источник
1
Это не решило проблему для меня. У меня был еще один оставшийся файл блокировки в .git / svn / refs / remotes / git-svn / index.lock.
Кай Ставгински
74

Удаление index.lockфайла, как заявил Шверн, решит эту проблему.

Вы можете удалить его, запустив rm -f ./.git/index.lock

Команда rmиспользуется для удаления (удаления) файлов и каталогов.

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

Джоэл
источник
9

Для пользователя "GUI" вроде меня

Откройте Git Extension и выберите репозиторий (если их несколько). Выберите «Настройки» в верхнем меню, затем «Обслуживание Git» и нажмите «Удалить блокировку индекса».

Расширения Git: Настройки-> Обслуживание Git-> Удалить блокировку индекса.

user3981082
источник
2

Вы уже открыли коммит на другой вкладке терминала

Андрей Денисюк
источник
2

Это также может касаться любых файлов * .lock в .git /

Проверьте и удалите их. Вы можете использовать:rm -f ./.git/*.lock

Artegen
источник
0

Ответ, предоставленный @Joel, помог, за исключением того, что для пользователей Windows вам может потребоваться включить отображение скрытых файлов / папок для доступа к папке .git, где существует файл index.lock . Используйте эту ссылку, если вы не знаете, как включить скрытые папки.

Джойс Оби
источник
0

Удаление файла index.lock, как заявил Шверн, решит эту проблему.

Вы можете удалить его, запустив rm -f ./.git/index.lock

Команда rm используется для удаления (удаления) файлов и каталогов.

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

все еще не работает означает открыть git через git bash вместо того, чтобы делать это в терминале

саранган
источник