github
Удаление конфиденциальных данных или больших файлов
Поиск…
Вступление
замечания
Сообщите своим сотрудникам об отказе, а не объединении, каких-либо ветвей, которые они создали из старой (испорченной) истории хранилища. Одно объединение слияния может повторно ввести какую-то или всю испорченную историю, в которую вы только что столкнулись с проблемой очистки.
По прошествии некоторого времени вы уверены, что 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