Commit aus einem Branch entfernen in Git
- Änderungen entfernen, wenn sie nicht in das Repository in Git übertragen wurden
- Änderungen entfernen, wenn sie in Git in das Repository übertragen wurden
- Gelöschte Commits entfernen
Wenn wir mit der Arbeit an einem umfangreichen Projekt beginnen, stoßen wir oft auf Situationen, in denen wir Teile in einem Zweig aktualisieren, entfernen oder hinzufügen müssen. Die Pflege von Commit-Nachrichten kann für das Team eine Hürde darstellen, wenn sich die Entwicklungsdauer über einen längeren Zeitraum mit strenger Deadline erstreckt.
Um die Pflege eines prägnanten Commit-Verlaufs zu vereinfachen, lernen wir in diesem Artikel einige allgemeine Bedingungen kennen, die wir bei der Arbeit mit Git durchlaufen können.
Git stellt uns einige Befehle zur Verfügung, um unsere vorherigen Commits aus dem Branch zu löschen. Die verfügbaren Strategien und Befehle werden unten in diesem Artikel erläutert.
Es gibt mehrere Möglichkeiten in Git, einen Commit aus dem Branch zu löschen oder zu entfernen. Der erste Schritt besteht darin, herauszufinden, welcher Trick für unser Szenario am besten geeignet ist, je nachdem, ob wir unser Commit in das Repository gepusht haben oder nicht.
Bevor wir dies versuchen, sollten wir beachten, dass die Ausführung dieser Befehle unsere Arbeitsverzeichnisänderungen LÖSCHEN wird. Und beachten Sie auch, dass git reset
ein Befehl ist, der unser Arbeitsverzeichnis auf den angegebenen Commit zurücksetzt, um die Änderungen separat zu speichern, die wir in Zukunft im Repository haben möchten.
Änderungen entfernen, wenn sie nicht in das Repository in Git übertragen wurden
In dem Szenario, in dem wir unsere Änderungen nicht in das Repository gepusht haben, wird der folgende Befehl verwendet.
git reset --hard HEAD~1
Dadurch werden alle Änderungen des Arbeitsverzeichnisses beseitigt und der HEAD in den Commit vor dem HEAD verschoben.
Angenommen, wir müssen die Commits bis zu einem bestimmten Commit nach oben löschen. In diesem Fall führen wir den Befehl git log
in der Befehlszeile aus, um die jeweilige Commit-ID zu finden, und führen dann Folgendes aus:
git reset --hard <sha1-commit-id>
Dadurch werden alle Änderungen des Arbeitsverzeichnisses ausgelassen und HEAD in den ausgewählten Commit verschoben.
Änderungen entfernen, wenn sie in Git in das Repository übertragen wurden
Im anderen Szenario, wenn wir unsere Änderungen bereits gepusht haben, müssen wir den folgenden Befehl ausführen.
git push origin HEAD --force
Beachten Sie, dass es besser wäre, mit dem neuesten Zweig zu beginnen, wenn andere den entsprechenden Zweig gezogen haben. Wenn wir dies nicht ausführen, wenn jemand anderes gezogen hat, wird es in ihre Arbeit integriert und wir werden es wieder nach oben schieben.
Wenn wir auf eine Situation stoßen, in der wir ein gelöschtes Commit finden müssen, ist es in git reflog
vorhanden, es sei denn, wir haben in unserem Repository Müll gesammelt.
Gelöschte Commits entfernen
Um einen gelöschten Commit aus dem Branch zu entfernen, können wir den folgenden Befehl verwenden:.
git reset --soft HEAD^
Dieser Befehl macht alle Änderungen des vorherigen Commits rückgängig oder setzt sie zurück und nimmt sie in einen neuen Commit im Repository zurück.
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