Проверьте git repo после использования BFG repo-cleaner
Очень простой вопрос git:
Я загрузил некоторую компрометирующую информацию на Github и использую bfg для очистки РЕПО. Я следовал документации и выполнил следующие действия:
$ git clone --mirror git://example.com/some-big-repo.git
$ bfg --replace-text passwords.txt my-repo.git
Я получил следующий результат:
Found 233 objects to protect
Found 9 commit-pointing refs : HEAD, refs/heads/experimental, refs/heads/master, ...
Protected commits
-----------------
These are your protected commits, and so their contents will NOT be altered:
* commit 497fc1c8 (protected by 'HEAD')
Cleaning
--------
Found 80 commits
Cleaning commits: 100% (80/80)
Cleaning commits completed in 301 ms.
BFG aborting: No refs to update - no dirty commits found??
Я хотел бы посмотреть, была ли удалена личная информация из моего РЕПО, Но я не знаю, как проверить файлы в зеркальном РЕПО. Есть идеи?
3 ответов:
Быстрый способ проверить, сохранился ли пароль в вашей истории, может заключаться в использовании "git pickaxe", он же опция
-S. Вот пример, который проверяет строкуpassword1:git log -Spassword1Однако, судя по выводам, показанным в вашем вопросе, похоже, что BFG не смог найти ни одной записи из
passwords.txtв вашем РЕПО (запрашивая messsage ' не найдено грязных коммитов??" который вы видите в конце вывода), что немного странно, если вы уверены, что они там. Был ли это тот самый первый раз, когда вы запустили BFG в репо? Возможно, это был второй раз, и БДВ уже удалил пароли?Файл
passwords.txt, который вы передаете BFG, должен иметь один пароль на строку, т. е.:changeme password1 password2По умолчанию BFG просматривает только текстовые файлы размером менее 1 МБ. Есть ли ваши пароли в каком-то файле, который может показаться двоичным или больше 1 МБ?
Update: чтобы увидеть, что изменилось в очистке РЕПО, вы также можете попробовать Eric S. Raymond
repodiffer(часть его reposurgeon project): http://www.catb.org/~esr/reposurgeon/repodiffer.html - вы используете его так:Выполнение скрипта может занять некоторое время, но он точно расскажет вам, что изменилось между этими двумя РЕПО.$ repodiffer old-repo-copy.git new-repo-copy.gitполное раскрытие: я являюсь автором РЕПО-очистителя BFG.
Я хотел оставить здесь дополнение, потому что потратил час, пытаясь понять, почему я получаю одно и то же сообщение об ошибке:
BFG aborting: No refs to updateИ я совершенно не мог понять, почему.
А потом я понял, что BFG, как и git, чувствителен к регистру - и имя файла, которое я набирал, было полностью строчным, в то время как версия в git имела начальную букву верхнего регистра.
Поскольку я был на Windows, я не думал об этом - файловая система там не бывает чувствительный.
Надеюсь, это избавит кого-то еще от пары часов боли!
Чтобы еще раз проверить, нет ли в вашем РЕПО определенных конфиденциальных данных, вы можете использовать следующую команду:
git log --patch | grep --color=auto secretИли используйте
less +/secretвместоgrep, чтобы увидеть его в контексте.
Comments