Heim >Entwicklungswerkzeuge >Idiot >So löschen Sie historische Commits in Git
In den letzten Jahren ist Git als leistungsstarkes Tool zur Versionskontrolle bei Entwicklungsteams immer beliebter geworden. Allerdings kann es bei der Verwendung von Git manchmal zu fehlerhaften Commits kommen, die sich negativ auf das Projekt auswirken können. Das Löschen dieser historischen Commits ist zu einem Problem geworden, mit dem Git-Benutzer häufig konfrontiert sind. In diesem Artikel erfahren Sie, wie Sie historische Commits in Git löschen.
1. Git-Einreichungsverlauf
Der Git-Einreichungsverlauf besteht aus vielen Einsendungen. Immer wenn Sie in Git einen Commit durchführen, wird ein neuer Commit erstellt. Jede Einreichung verfügt über eine eigene Kennung (SHA) und enthält Informationen wie den Autor der Einreichung, das Datum und die Beschreibung der Einreichung.
Sie können den Commit-Verlauf in Git über die Git-Befehlszeile oder das Git-Client-Tool anzeigen. Über die Git-Befehlszeile können Sie beispielsweise den Commit-Verlauf dieses Projekts mit dem folgenden Befehl anzeigen:
git log
Dieser Befehl listet alle Commits im aktuellen Zweig in umgekehrter Reihenfolge auf. Jeder Commit hat seinen eigenen SHA, den Namen und die E-Mail-Adresse des Committers, das Commit-Datum und die Commit-Nachricht.
2. Warum historische Einreichungen löschen? Im Prozess der kollaborativen Entwicklung gibt es viele menschliche Faktoren, die zur Entstehung fehlerhafter Einreichungen führen. „Schlechte Einsendungen“ sind Einsendungen, die Fehler, Sicherheitslücken, vertrauliche Informationen usw. enthalten können. Wenn diese fehlerhaften Commits in den Hauptzweig integriert wurden, kann dies negative Auswirkungen auf andere Teile des Projekts haben.
Wenn Sie darüber hinaus Inhalte angeben, die andere vor der Übermittlung des Codes nicht sehen sollen, wie z. B. Passwörter, API-Schlüssel und andere vertrauliche Informationen, können diese nach der Übermittlung offengelegt werden. Derzeit ist das Löschen historischer Übermittlungen eine Möglichkeit, die Privatsphäre der Benutzer zu schützen.
3. So löschen Sie historische Commits in Git
In Git gibt es zwei Möglichkeiten, historische Commits zu löschen: den Verlauf neu zu schreiben und den Filtermechanismus von Git zu verwenden.
Verlauf neu schreiben(1) Verwenden Sie den folgenden Befehl, um den Commit-Verlauf anzuzeigen:
git log
(2) Suchen Sie den SHA des Commits, den Sie löschen möchten, und zeichnen Sie ihn auf.
(3) Verwenden Sie den folgenden Befehl, um den Verlauf neu zu schreiben. Ersetzen Sie in diesem Befehl SHA durch den SHA des Commits, den Sie löschen möchten:
git rebase -i SHA^
Dieser Befehl öffnet einen Editor mit einer Liste aller Commits seit dem letzten Commit des ausgewählten Commits.
(4) Ändern Sie das „Pick“ vor dem Commit, das Sie löschen möchten, in „Drop“ oder kommentieren Sie die Zeile mit einem Nummernzeichen aus. Speichern und schließen Sie den Editor.
(5) Führen Sie den folgenden Befehl aus, um das Überschreiben der Commits in Git zu erzwingen:
git push --force
Abschließend können Sie mit dem folgenden Befehl überprüfen, ob Sie den Commit-Verlauf erfolgreich gelöscht haben:
git logVerwenden Sie den Filtermechanismus von Git
(1) Verwenden Sie den folgenden Befehl, um ein Kopie-Repository zu erstellen:
git clone --mirror <Git URL>
(2) Verwenden Sie den folgenden Befehl, um das Kopie-Repository aufzurufen:
cd <repository name>.git
(3) Verwenden Sie den folgenden Befehl, um historische Commits zu löschen:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <filename>" --prune-empty --tag-name-filter cat -- --all
Dieser Befehl wird verwendet, um die historischen Commits der Datei mit dem Namen
(4) Verwenden Sie den folgenden Befehl, um die Änderungen in das Git-Repository zu übertragen:
git push --all --force
Abschließend können Sie mit dem folgenden Befehl überprüfen, ob der Commit-Verlauf erfolgreich gelöscht wurde:
git log
IV Zusammenfassung
Durch Umschreiben des Mit dem Verlauf oder der Verwendung des Git-Filtermechanismus können Sie historische Commits in Git löschen. Bevor Sie jedoch den Commit-Verlauf löschen, sollten Sie sorgfältig darüber nachdenken und sicherstellen, dass alle Teammitglieder die Auswirkungen der Änderung verstehen. Darüber hinaus sollten Git-Repositorys regelmäßig bereinigt werden, bevor Änderungen zusammengeführt werden, um den Speicheraufwand zu reduzieren.
Das obige ist der detaillierte Inhalt vonSo löschen Sie historische Commits in Git. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!