Проверьте 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??


Я хотел бы посмотреть, была ли удалена личная информация из моего РЕПО, Но я не знаю, как проверить файлы в зеркальном РЕПО. Есть идеи?

833   3  

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

    Ничего не найдено.