Нужна ли сборка мусора после использования 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"
примечание: принудительное нажатие делает пульт дистанционного управления точно таким же, как и ваша локальная ветвь или мастер, таким образом, чтобы другие разработчики не работали над ним во время изменения локального рабочего дерева.