Git Commit aus Verlauf entfernen

Abdul Jabbar 20 Juni 2023
  1. Entfernen Sie Änderungen lokal in Git
  2. Entfernen Sie Änderungen zwangsweise in Git
Git Commit aus Verlauf entfernen

In Git ist es keine gute Idee, vertrauliche Dinge zu einem Repository hinzuzufügen, da dies alle unsere Geheimnisse ruinieren und sie der ganzen Welt preisgeben würde, was wir nicht wollen. Aber manchmal fügen wir absichtlich oder unabsichtlich Dinge hinzu, die wir nicht haben sollten.

Jetzt müssen wir die Angelegenheit klären und mithilfe von Git-Befehlen vertrauliche Informationen aus unserem Repo entfernen. Es ist nicht einfach, es aus dem Git-Verlauf zu entfernen, da Git einen umfangreicheren Hintergrund für die Aufbewahrung des Repo-Verlaufs in verschiedenen Formaten hat.

Zu diesem Zweck sollten wir viel vorsichtiger bei der gründlichen Reinigung dieses Fehlers sein und die zusätzlichen Dinge aus dem Zweig dieses Repositorys entfernen.

Git verfügt über eine breite Palette von Tools zum Rückgängigmachen von Commits, je nach Zustand und Größe des Commits. Das Löschen kann auf zwei verschiedene Arten erfolgen, abhängig von unserem Fehler und davon, ob wir die Änderungen in das Remote-Repository verschoben haben oder nicht.

In diesem Tutorial lernen wir zwei verschiedene Methoden kennen, um Commits lokal und zwangsweise mithilfe von Git-Befehlen zu entfernen.

Entfernen Sie Änderungen lokal in Git

Neueste Commits entfernen

Die neusten Commits können wir mit Hilfe des Befehls git reset löschen. Dieser Befehl ist bekannt dafür, Änderungen rückgängig zu machen.

Wir können jedoch die neueste mit dem folgenden Git-Befehl löschen.

git reset --hard HEAD~1

HEAD~1 gibt einen Commit vor dem HEAD an. Wir verwenden das Flag HEAD~N, um den angegebenen Commit mit dem Befehl git reset zu löschen.

git reset --hard HEAD~N

Eine andere Methode könnte dies erreichen, indem die genaue Commit-Hash-ID angegeben wird. Der folgende Befehl ist der Weg, dies zu tun.

git reset --hard <sha1-commit-hash>

Machen Sie den mittleren Commit rückgängig

Mit Hilfe des Befehls git revert können wir einen neuen Commit einfügen, der die Änderungen rückgängig macht, die durch den spezifischen mittleren Commit vorgenommen wurden. Dies wird durch den folgenden Git-Befehl erreicht.

git revert <sha1-commit-hash>

Hier ist der Hauptpunkt, dass git revert den spezifischen mittleren Commit nicht löscht. Um es vollständig aus dem Verlauf zu löschen, müssen wir git rebase zusammen mit dem interaktiven Argument damit ausführen, das wie folgt lautet:

git rebase -i <sha1-commit-hash>

Gelöschtes Commit wiederherstellen

Nach dem Löschen des Commit können wir es mit dem folgenden Befehl wiederherstellen, wenn wir es wieder zurückhaben möchten.

git reflog

Entfernen Sie Änderungen zwangsweise in Git

Wenn unsere Teamkollegen oder wir die Änderungen bereits in das Remote-Repository übertragen, hat Git eine reibungslose Möglichkeit, diese Situation zu kontrollieren, indem der Befehl git push zusammen mit dem Flag --force ausgeführt wird.

Dadurch wird das Commit aus dem standardmäßigen Remote-Repo gelöscht, das der Ursprung ist, und für die zukünftige Verwendung im Zweig verfügbar sein wird.

git push origin HEAD --force

Notiz:

Diese Methode ist nicht sicher und in Bezug auf die Verwendung sehr kritisch; Es kann die lokalen Repositories unserer Kollegen durcheinander bringen. Wenn jemand aus unserem Team diesen Zweig zieht, wird er in seine Arbeit integriert, und wir werden diesen Zweig wieder zurückschieben lassen.

Daher ist es besser und bequemer, mit einem neuen Zweig im selben Repository zu beginnen.

Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

Verwandter Artikel - Git Remove