github
Gevoelige gegevens of grote bestanden verwijderen
Zoeken…
Invoering
Opmerkingen
Vertel uw medewerkers om alle vertakkingen die ze hebben gemaakt op basis van uw oude (besmette) repositorygeschiedenis te rebasen, niet samen te voegen. Eén merge-commit kan de gehele geschiedenis van de besmette geschiedenis die je net hebt opgezegd, opnieuw invoeren.
Nadat enige tijd is verstreken en je ervan overtuigd bent dat git filter-branch geen onbedoelde bijwerkingen had, kun je alle objecten in je lokale repository dwingen om te worden verwijderd en afval verzameld met de volgende opdrachten (met Git 1.8.5 of nieuwer):
git for-each-ref --format = 'delete% (refname)' refs / original | git update-ref --stdin
git reflog verlopen --expire = nu --all
git gc --prune = nu
Gebruik filtertak
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
Voeg uw bestand met gevoelige gegevens toe aan .gitignore om ervoor te zorgen dat u het niet per ongeluk opnieuw vastlegt.
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
Push je lokale repo naar GitHub
git push origin --force --all
Om het gevoelige bestand uit je getagde releases te verwijderen, moet je ook geforceerd pushen tegen je Git-tags:
git push origin --force --tags
De BFG Repo Cleaner gebruiken
BFG Repo cleaner is een alternatief voor git filter-branch. Het kan worden gebruikt om gevoelige gegevens of grote bestanden te verwijderen die verkeerd zijn gepleegd, zoals binaire bestanden die zijn gecompileerd vanuit de bron. Het is geschreven in Scala.
Projectwebsite: BFG Repo Cleaner
Voorwaarden
De Java Runtime Environment (Java 7 of hoger - BFG v1.12.3 was de laatste versie die Java 6 ondersteunde). De Scala-bibliotheek en alle andere afhankelijkheden worden in de downloadbare pot gevouwen.
Verwijder bestanden met gevoelige gegevens
bfg --delete-files YOUR-FILE-WITH-SENSITIVE-DATA