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 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