github
Vertrauliche Daten oder große Dateien entfernen
Suche…
Einführung
Bemerkungen
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.
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