Очистка истории мерзавцев с BFG

Поскольку я недавно пытался выдвинуть свои коммиты на github, я получил то же сообщение об ошибке, что и в этом вопросе. Я удалил файлы из своего хранилища, но теперь должен очистить историю. Как советовали в ответах, я изучил BFG, который, кажется, является решением. При чтении инструкции начинается с git --mirror link-to-remote-repo,

Теперь я задаюсь вопросом, потому что я еще не смог выдвинуть самый новый коммит, и, вероятно, моя локальная история коммитов длиннее, чем на github. Более того, я не уверен, так как вся работа, которую я делал, была над веткой, а не над мастером, и как это влияет на мой репозиторий.

1 ответ

Решение

Ручное решение (на основе cheery pick)

РЕДАКТИРОВАТЬ: Перед началом, пожалуйста, зафиксируйте или сохраните ваши локальные изменения.

Допустим, у нас есть две ветви master а также dev которые имеют общий коммит с SHA1 = X. Branch dev содержит коммиты A1, A2, ..., A16

  • git checkout dev
  • git checkout -b new-dev
  • git reset --hard X

За каждый коммит в dev (A1, ..., A16):

  • git cherry-pick A1 --no-commit
  • Проверьте свой индекс с git status
  • Удалите проблемные двоичные файлы из индекса git reset HEAD myfolder/mybinary.rpm
  • удалить файл git rm myfolder/mybinary.rpm
Другие вопросы по тегам