Eine Datei aus der Historie bereinigen

GitGitBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Git ist ein beliebiges Versionsverwaltungssystem, das es Entwicklern ermöglicht, Änderungen in ihrer Codebasis zu verfolgen. Manchmal ist es jedoch erforderlich, eine Datei vollständig aus der Repository-Historie zu entfernen. In diesem Lab führen wir Sie durch den Prozess, eine Datei aus der Git-Historie zu bereinigen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/DataManagementGroup -.-> git/filter("Apply Filters") subgraph Lab Skills git/filter -.-> lab-12747{{"Eine Datei aus der Historie bereinigen"}} end

Entfernen einer Datei aus der Historie

Angenommen, Sie haben versehentlich eine Datei, die sensible Informationen wie API-Schlüssel oder Passwörter enthält, in Ihr Git-Repository committet. Sie stellen fest, dass diese Datei niemals committet werden sollte und möchten sie vollständig aus der Repository-Historie entfernen. Ein einfaches Löschen der Datei und Committen der Änderung entfernt sie jedoch nicht aus der Repository-Historie. Die Datei bleibt in früheren Commits noch zugänglich, was ein Sicherheitsrisiko darstellen kann.

Um dieses Lab zu absolvieren, verwenden Sie das Git-Repository git-playground aus Ihrem GitHub-Konto, das von einem Fork von https://github.com/labex-labs/git-playground.git stammt. Dieses Repository enthält eine Datei namens file1.txt, die niemals committet werden sollte. Entfernen Sie file1.txt aus der Repository-Historie, befolgen Sie diese Schritte:

  1. Klonen Sie das Repository auf Ihren lokalen Computer:
git clone https://github.com/your-username/git-playground
  1. Verwenden Sie die folgenden Befehle, um in das Verzeichnis zu navigieren und die Identität zu konfigurieren:
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
  1. Löschen Sie die Datei aus dem Repository-Index.
git rm --cached --ignore-unmatch file1.txt
  1. Committen Sie diese Änderung mit der Commit-Nachricht "Remove sensitive file1.txt":
git commit -m "Remove sensitive file1.txt"
  1. Überschreiben Sie die Repository-Historie, indem Sie alle Vorkommen von file1.txt entfernen:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch file1.txt" --prune-empty --tag-name-filter cat -- --all
  1. Drücken Sie die Änderungen mit Gewalt auf das Remoterepository:
git push origin --force --all

Nach Abschluss dieser Schritte wird file1.txt vollständig aus der Repository-Historie entfernt und nachdem Sie git log --remotes ausgeführt haben, werden Sie den Commit zu file1.txt nicht mehr sehen.

Zusammenfassung

Das Entfernen einer Datei aus der Git-Historie ist ein notwendiger Schritt, wenn sensible Informationen versehentlich committet wurden. In diesem Lab haben wir Sie durch den Prozess geführt, eine Datei aus der Git-Historie zu bereinigen, indem der Befehl git filter-branch verwendet wurde. Denken Sie daran, Vorsicht walten zu lassen, wenn Sie die Repository-Historie überschreiben, da dies unerwartete Folgen haben kann.