Git не может заблокировать ref 'HEAD': не удалось выполнить ссылку HEAD

Я пытаюсь зафиксировать изменения в моем репозитории, но получаю следующее сообщение:

git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Contronym\AppData\Local\Temp\bkdweixb.mnu
fatal: cannot lock ref 'HEAD': unable to resolve reference HEAD: Invalid argument

Completed with errors, see above.

Я использую bitbucket и SourceTree.

В чем причина этого сбоя? За последнюю неделю я смог зафиксировать последние 3 фиксации. Затем, внезапно, я получаю эту ошибку.

ИЗМЕНИТЬ

Я побежал git gc, и это результаты:

$ git gc
error: bad ref for HEAD
error: bad ref for HEAD
error: inflate: data stream error (unknown compression method)
fatal: loose object 53b65bd9b4fec7f6a7b0b3313c68199a18804327 (stored in .git/objects/53/b65bd9b4fec7f6a7b0b3313c68199a18804327) is corrupt
error: failed to run repack

Я проверил каталог .git/objects/53/b65bd9b4fec7f6a7b0b3313c68199a18804327, но этого не существует. Там есть еще два файла, но b65bd9b4fec7f6a7b0b3313c68199a18804327 не существует.

Ответ 1

У меня была та же проблема, и единственное решение, которое я нашел, было перейти к голове следующим образом:

.git/ссылки/головки /branch_name

И я удалил главный файл. Затем я подошел к консоли и использовал команду:

git reset

Затем все файлы были удалены, поэтому добавьте их и зафиксируйте их позже.

Ответ 2

У меня была такая же проблема, это работало для меня:

Шаг 1) - зайдите в .git\logs\refs \head и откройте Документ с именем YOUR_BRANCH, теперь скопируйте идентификатор -numbers перед вашим именем пользователя и email-

Шаг 2) - добрались до .git\refs \head и откройте документ с именем YOUR_BRANCH, удалите строку и вставьте ID в.

Надеюсь, это поможет вам

Ответ 3

Работал у меня, в терминал входи: (ветвь соответственно твоим желаниям lul)

echo ref: refs/heads/master >.git/HEAD

Ответ 4

Если вы не против потерять свою историю, вы можете удалить файл .git, а затем

git init

Это приведет к повторной инициализации вашего хранилища, и вы сможете продолжить

Ответ 5

У меня была такая же проблема после вызова команд git с пользователем root внутри рабочей копии. Таким образом, владелец и группа владельцев различных файлов в.git/были изменены на "root".

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

Опять заработало, после сброса разрешений с

sudo chown -R [MY_USER]:[MY_GROUP] .git

Ответ 6

Когда я сталкиваюсь с этим, я просто git клонирую проект в новый каталог с файлами и вытаскиваю папку заголовков из .git\refs \head и заменяю исходный файл заголовков в каталоге, где у вас возникла проблема. Затем просто удалите новый клон, который вы создали (поскольку он, очевидно, не имеет обновлений, которые вы пытаетесь отправить).

Ответ 7

У меня та же проблема. Я просто использовал команду:

git reset

Чем я удалил файл /my _project_directory/./git/refs/heads/master и чем я могу использовать команду

git reset --hard <my_hash_of_last_commit_on_remote_branch>