Ваша задача - удалить капли из истории Git хеш-идентификатором. Вы можете найти его быстрее и проще в использовании BFG, а не git-filter-branch
, в частности, с использованием --strip-blobs-with-ids
флага:
-bi, --strip-сгустки-с-идентификаторами <blob-ids-file>
... полосой с узором водных потеков указанным Git объектные идентификаторы
Тщательно следуйте usage instructions, основная часть всего этого:
$ java -jar bfg.jar --strip-blobs-with-ids <blob-ids-file> my-repo.git
Обратите внимание, что файл <blob-ids-file>
должны сотрудничать Идентификаторы объектов Git, а также простые хэши SHA-1 содержимого blob.
Для данного файла, можно вычислить идентификатор объекта Git с git hash-object
:
$ git hash-object README.md
a63b49c2e93788cd71c81015818307c7b70963bf
Вы можете видеть, что это значение отличается от простого SHA-1 хеш:
$ sha1sum README.md
7b833f7b37550e2df719b57e8c4994c93a865aa9 README.md
. Это связано с тем, что идентификатор объекта Git хэширует заголовок Git вместе с содержимым файла, хотя он использует один и тот же алгоритм SHA-1.
BFG обычно не менее чем на 10-50 раз быстрее, чем работает git-filter-branch
и, как правило, проще в использовании.
Полное раскрытие информации: Я являюсь автором BFG Repo-Cleaner.
Если вы можете использовать очиститель репозитория BFG, он имеет простую поддержку для этой операции и намного быстрее, чем использование ветви фильтра –