Suche…


Einführung

Wenn Sie vertrauliche Daten, z. B. ein Kennwort oder einen SSH-Schlüssel, in ein Git-Repository einbinden, können Sie sie aus dem Verlauf entfernen. Um unerwünschte Dateien vollständig aus dem Repository-Verlauf zu entfernen, können Sie entweder den Befehl git filter-branch oder den BFG Repo-Cleaner verwenden.

Bemerkungen

  1. Sagen Sie Ihren Mitarbeitern, dass sie alle Zweige, die sie aus Ihrem alten (verfälschten) Repository-Verlauf erstellt haben, neu abstimmen und nicht zusammenführen sollen. Durch ein Merge-Commit könnten Sie die verdorbene Geschichte, die Sie gerade erledigt haben, ganz oder teilweise wieder einführen.

  2. Nachdem einige Zeit vergangen ist und Sie zuversichtlich sind, dass git filter-branch keine unbeabsichtigten Nebenwirkungen hatte, können Sie alle Objekte in Ihrem lokalen Repository mit den folgenden Befehlen (mit Git 1.8.5 oder neuer) dereferenzieren lassen.

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

    git reflog verfällt --expire = now --all

    git gc --prune = jetzt

Filterzweig verwenden

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

Fügen Sie Ihre Datei mit vertraulichen Daten zu .gitignore hinzu, um sicherzustellen, dass Sie sie nicht erneut versehentlich festlegen.

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

Schieben Sie Ihr lokales Repo auf GitHub

git push origin --force --all

Um die vertrauliche Datei aus Ihren getaggten Releases zu entfernen, müssen Sie auch einen Push-Push gegen Ihre Git-Tags durchführen:

git push origin --force --tags

Verwendung des BFG Repo Cleaners

BFG Repo-Reiniger ist eine Alternative zum Git-Filter-Zweig. Es kann verwendet werden, um vertrauliche Daten oder große Dateien zu entfernen, die falsch wie Binaries aus der Quelle kompiliert wurden. Es ist in Scala geschrieben.

Projekt-Website: BFG Repo Cleaner

Bedarf

Die Java-Laufzeitumgebung (Java 7 oder höher - BFG v1.12.3 war die letzte Version, die Java 6 unterstützt). Die Scala-Bibliothek und alle anderen Abhängigkeiten werden in das herunterladbare Glas gefaltet.

Entfernen Sie Dateien mit vertraulichen Daten

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow