Я переписал историю репозитория GitHub две недели назад (перебазирование и некоторые выборки вишни) и принудительно отправил его обратно в GitHub через
git push -f origin master
Все прошло нормально, по крайней мере, так выглядело, и git log
показал правильную историю коммитов. Я знаю, что переписывать историю - плохая практика, но репозиторий новый, и я единственный пользователь, поэтому для других не должно быть проблем.
Мой репозиторий имеет только одну ветвь с именем master
.
Теперь к моей проблеме. Исходное представление GitHub для моего репозитория показывает по крайней мере один коммит, который больше не должен существовать из-за переписывания истории. И действительно, он не существует ни в моем локальном, ни в журнале коммитов GitHub (но он является частью моего локального рефлога). Как мне избавиться от этого коммита и, возможно, от других, которые есть в моем удаленном репозитории GitHub? Есть ли способ очистить удаленный репозиторий и удалить те «недоступные» коммиты, которые не являются частью журнала коммитов?
Кстати, если я клонирую репозиторий GitHub, мошеннический коммит отсутствует в клоне. git show <SHA1>
возвращает fatal: bad object
.
Мой вопрос очень похож на SO 4367977 , но решение этого вопроса "ожидание сборки мусора в GitHub", очевидно, не сработало. Коммит-коммиты по-прежнему работают через 6 месяцев.
Удаление хранилища и воссоздание его должно решить проблему, но это не очень элегантно.
Заранее спасибо!