Поиск…


Вступление

Если вы отправляете важные данные, такие как пароль или SSH-ключ, в репозиторий Git, вы можете удалить его из истории. Чтобы полностью удалить нежелательные файлы из истории репозитория, вы можете использовать команду git filter-branch или BFG Repo-Cleaner.

замечания

  1. Сообщите своим сотрудникам об отказе, а не объединении, каких-либо ветвей, которые они создали из старой (испорченной) истории хранилища. Одно объединение слияния может повторно ввести какую-то или всю испорченную историю, в которую вы только что столкнулись с проблемой очистки.

  2. По прошествии некоторого времени вы уверены, что git filter-branch не имеет непредвиденных побочных эффектов, вы можете заставить все объекты в вашем локальном репозитории разыменоваться и собирать мусор с помощью следующих команд (с использованием Git 1.8.5 или новее):

    git for-each-ref --format = 'delete% (refname)' refs / original | git update-ref --stdin

    git reflog expire --expire = now - all

    git gc --prune = сейчас

Использование фильтра-ветви

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all

Добавьте свой файл с конфиденциальными данными в .gitignore, чтобы убедиться, что вы его случайно не совершили.

echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"

Нажмите свое местное репо на GitHub

git push origin --force --all

Чтобы удалить чувствительный файл из ваших отмеченных выпусков, вам также потребуется принудительно нажать на теги Git:

git push origin --force --tags

Использование BFG Repo Cleaner

Очиститель BFG Repo является альтернативой git filter-branch. Его можно использовать для удаления конфиденциальных данных или больших файлов, которые были сделаны неправильно, как двоичные файлы, скомпилированные из источника. Это написано в Scala.

Веб-сайт проекта: BFG Repo Cleaner

Требования

Java Runtime Environment (Java 7 или выше - BFG v1.12.3 была последней версией для поддержки Java 6). Библиотека Scala и все другие зависимости складываются в загружаемую банку.

Удаление файлов с конфиденциальными данными

bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow