2012-06-10 17 views
7

Ich habe ein lokales Git-Repository, an dem ich ziemlich viel gearbeitet habe, mit einer Reihe von Commits, die ich behalten möchte. Leider, während der Code vernünftig wiederverwendbar ist, habe ich einige sensible Daten (Datenbanknamen/Benutzer/Passwörter) in einem sehr frühen Commit enthalten. Ich möchte die gesamte Geschichte ändern, um die sensiblen Daten zu anonymisieren, während die allgemeine Geschichte Struktur beibehalten wird. Ist das möglich? Wenn das so ist, wie?Ein lokales Git-Repository anonymisieren?

Antwort

6

Ich denke, das wird helfen:

+0

Ja. History Re-Writing ist der Schlüssel. Ich machte ein Backup-Repo (nur für den Fall), und dann lief "git filter-branch --tree-filter" sed -i "s/sensible Daten/saubere Daten/g * 'HEAD", und das alles aus dem Ganzen entfernt Vielen Dank für den Zeiger! – naught101

0

sie aus dem Repository entfernen, dann begehen. Sie müssen dann alle Commits aus dem Zeitpunkt, zu dem die Dateien hinzugefügt wurden, zum Zeitpunkt des Entfernens zusammendrücken. Sie können eine gute Erklärung zu diesem here sehen, die kurz schlägt vor, git rebase -i zu verwenden.

+0

Ich bin mir bewusst, dass ich Commits committieren kann, aber das wird die Geschichte, über die ich sprach, entfernen. – naught101