Passwörter aus Git löschen

Hin und wieder programmiert man vor sich hin, wer Code läuft und man checkt ihn ein. Ein paar Tage und ein paar Commits später stellt man fest, das man ein WLAN-Passwort, ein Token, einen API-Key oder eine Datei mit Secrets eingecheckt hat.
Was jetzt? Einfach aus der aktuellen Version entfernen? Was passiert, wenn jemand den alten Code anschaut oder ein Tool die alten Versionen scannt. Dann ist das Passwort plötzlich öffentlich.
Leider bietet Git von Haus aus keine Möglichkeit an eine einzelne Datei aus einem Repository zu löschen. Das gesamte Repo zu löschen ist aber auch keine Alternative.

Nach langem Suchen habe ich zwei Möglichkeiten gefunden Passwortdateien oder besser gesagt beliebige Dateien aus einem Repository zu entfernen, ohne die anderen Dateien in Mitleidenschaft zu ziehen.

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
git push --force --verbose --dry-run
git push --force

oder

git filter-branch --index-filter 'git update-index --remove PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' <introduction-revision-sha1>..HEAD
git push --force --verbose --dry-run
git push --force
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert