Szukaj…


Wprowadzenie

Jeśli do repozytorium Git przekażesz wrażliwe dane, takie jak hasło lub klucz SSH, możesz je usunąć z historii. Aby całkowicie usunąć niechciane pliki z historii repozytorium, możesz użyć polecenia git filter-branch lub BFG Repo-Cleaner.

Uwagi

  1. 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.

  2. 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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow