Пожалуйста, рассмотрите возможность изменения принятого ответа на ответ Алексея Тен, который является высоко оцененным и правильным ( git update-ref -d).
Джонатон Рейнхарт
Ответы:
11
Это похоже на тег, поэтому должна работать следующая команда:
git tag -d refs/original/refs/heads/master
Но, поскольку вы сказали, что это не так, вы можете просто удалить файл из .gitкаталога. Из корня хранилища команда, подобная этой, получит это:
rm .git/refs/tags/refs/original/refs/heads/master
Путь может немного отличаться в случае сбоя git-tagкоманды, поэтому вы можете захотеть cd .git/refsнайти неисправную голову методом проб и ошибок. Удаление файла удалит ссылку из вашего локального репозитория.
Это сработало для меня с той же проблемой. Обратите внимание, что ссылка была сохранена в файле с именем .git / pack-refs. Если вы откроете это, то увидите строку с SHA и строку «refs / original / refs /head / master». Возможно, вы могли бы удалить эту строку, но я бы использовал эту команду для безопасности.
Мэтт N
14
+1: Вы должны всегда использовать git update-ref -dвместо того, чтобы просто rmиспользовать реф - плохие вещи могут случиться иначе.
Каллум Роджерс
3
Это должен быть принятый ответ
Даниэль Олдер
1
@CallumRogers почему?
wahnfrieden
6
@wahnfrieden, потому что git может использовать упакованные ссылки, и в refsкаталоге не будет соответствующего файла
Алексей Тен
17
Это ссылка. Обычно создается git filter-branch- это указатель на то, где находилась ваша ветка до вашего запуска git filter-branch.
И чтобы удалить любую ссылку, вы всегда можете ничего не помещать в локальный репозиторий:
git push . :refs/original/refs/heads/master
Другие ответы также довольно хорошо охватывали другие способы удаления.
git update-ref -d
).Ответы:
Это похоже на тег, поэтому должна работать следующая команда:
Но, поскольку вы сказали, что это не так, вы можете просто удалить файл из
.git
каталога. Из корня хранилища команда, подобная этой, получит это:Путь может немного отличаться в случае сбоя
git-tag
команды, поэтому вы можете захотетьcd .git/refs
найти неисправную голову методом проб и ошибок. Удаление файла удалит ссылку из вашего локального репозитория.источник
.git/refs/original/refs/heads/master
.git update-ref
а не вручную изменяйте внутренности Git. Смотрите ответ Алексея.Эта команда должна работать
источник
git update-ref -d
вместо того, чтобы простоrm
использовать реф - плохие вещи могут случиться иначе.refs
каталоге не будет соответствующего файлаЭто ссылка. Обычно создается
git filter-branch
- это указатель на то, где находилась ваша ветка до вашего запускаgit filter-branch
.И чтобы удалить любую ссылку, вы всегда можете ничего не помещать в локальный репозиторий:
Другие ответы также довольно хорошо охватывали другие способы удаления.
источник