Нужна ли сборка мусора после использования BFG для переписывания истории git?

Мы ввели некоторый пароль в наш репозиторий bitbucket, это противоречит политике безопасности нашей организации, поэтому я использовал BFG Repo Cleaner, чтобы заменить все пароли словом " Удалено ", создав локальное зеркало, затем

 bfg --replace-text passwords.txt  my-repo.git

он делает работу, как описано на их сайте, пароль действительно удаляется!

удивительно, что это

  • заменить пароли в файле
  • удаляет старые коммиты
  • затем сделать некоторые новые коммиты, а не переписывать историю, основанную на старых коммитах....

так что проблема в том, что пароль все еще можно увидеть по старому URL-адресу bitbucket, который указывает на старые коммиты

мой вопрос, как я могу удалить удаленные коммиты из bitbucket или, возможно, из истории git? который в свою очередь останавливает URL-адреса, указывающие на удаленные / старые коммиты, показывающие пароль, который мы намеревались удалить?

1 ответ

Решение состоит в том, чтобы сделать "git push --force", который вызовет автоматический сборщик битов

однако gc может дать сбой, bitbucket работает над улучшением, если это произойдет, вы должны будете запустить команду на репо вручную как администратор

git reflog expire --expire="1 hour" --all
git reflog expire --expire-unreachable="1 hour" --all
git prune --expire="1 hour" -v
git gc --aggressive --prune="1 hour"

примечание: принудительное нажатие делает пульт дистанционного управления точно таким же, как и ваша локальная ветвь или мастер, таким образом, чтобы другие разработчики не работали над ним во время изменения локального рабочего дерева.

Другие вопросы по тегам