github
Usuwanie poufnych danych lub dużych plików
Szukaj…
Wprowadzenie
Uwagi
Powiedz swoim współpracownikom, aby utworzyli bazy, a nie scalali, wszelkie gałęzie, które utworzyli ze starej (skażonej) historii repozytorium. Jedno zatwierdzenie scalania może przywrócić część lub całą skażoną historię, którą właśnie zadałeś sobie trud oczyszczenia.
Po pewnym czasie i jesteś pewien, że git filter-branch nie miał żadnych niezamierzonych efektów ubocznych, możesz wymusić usunięcie wszystkich obiektów w lokalnym repozytorium i wyrzucanie śmieci za pomocą następujących poleceń (używając Git 1.8.5 lub nowszej):
git for-each-ref --format = 'delete% (refname)' refs / original | git update-ref --stdin
git reflog expire expire --expire = now - all
git gc --prune = teraz
Korzystanie z gałęzi filter
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
Dodaj plik z danymi wrażliwymi do .gitignore, aby upewnić się, że nie zostanie przypadkowo ponownie zatwierdzony.
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
Przekaż swoje lokalne repozytorium do GitHub
git push origin --force --all
Aby usunąć wrażliwy plik z oznaczonych wydań, musisz również wymusić na tagach Git:
git push origin --force --tags
Korzystanie z BFG Repo Cleaner
BFG Repo Cleaner to alternatywa dla Git Filter-Branch. Można go użyć do usunięcia poufnych danych lub dużych plików, które zostały popełnione nieprawidłowo, na przykład pliki binarne skompilowane ze źródła. Jest napisany w Scali.
Strona projektu: BFG Repo Cleaner
Wymagania
Środowisko wykonawcze Java (Java 7 lub nowsza wersja BFG 1.13.3 była ostatnią wersją obsługującą Java 6). Biblioteka Scala i wszystkie inne zależności są składane w słoiku do pobrania.
Usuń pliki z wrażliwymi danymi
bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA