paint-brush
So löschen Sie Commits aus der Ferne in Gitvon@timmouskhelichvili
309,808 Lesungen
309,808 Lesungen

So löschen Sie Commits aus der Ferne in Git

von Tim Mouskhelichvili2m2022/05/31
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Um Commits aus der Ferne zu löschen, können Sie den Befehl „git reset“ verwenden, wenn Ihre Commits von oben nacheinander erfolgen, oder andernfalls ein interaktives Rebase. Nachdem Sie die Commits lokal gelöscht haben, übertragen Sie diese Änderungen mithilfe des Befehls „git push“ mit der Option „force“ auf die Fernbedienung.
featured image - So löschen Sie Commits aus der Ferne in Git
Tim Mouskhelichvili HackerNoon profile picture
0-item
1-item

Das Manipulieren des Verlaufs kommt bei Entwicklern, die regelmäßig mit Git arbeiten, häufig vor. Tatsächlich müssen Entwickler häufig Commits aus dem Git-Verlauf entfernen. Glücklicherweise stellt Git viele Befehle bereit, um diesen Vorgang zu ermöglichen.


Lasst uns loslegen 😎.

Schritt 0 – Vorbereitung

Bevor Sie den Git-Verlauf manipulieren, stellen Sie mit dem Befehl git status sicher, dass Ihr Arbeitsverzeichnis frei von Änderungen ist.

Schritt 1 – Commits lokal löschen

Um Commits von einem Remote-Server zu löschen, müssen Sie sie zunächst aus Ihrem lokalen Verlauf entfernen.

1.1 Für aufeinanderfolgende Commits von oben

Wenn die Commits, die Sie entfernen möchten, ganz oben in Ihrem Commit-Verlauf stehen, verwenden Sie den Befehl git reset --hard mit dem HEAD Objekt und der Anzahl der Commits, die Sie entfernen möchten.


 git reset --hard HEAD~1

Dieser Befehl entfernt den letzten Commit .


 git reset --hard HEAD~3

Dieser Befehl entfernt die letzten drei Commits .


Sie können auch bis zu einem bestimmten Commit entfernen, indem Sie den Hash eines Commits verwenden, etwa so:

 git reset --hard <hash>

1.2 Für nicht aufeinanderfolgende Commits

Wenn Sie jedoch nicht aufeinanderfolgende Commits entfernen möchten, müssen Sie eine interaktive Rebase verwenden.


  • [ ] Suchen Sie mit dem Befehl git reflog den letzten Commit-Hash, der alle Commits enthält, die Sie entfernen möchten.
  • [ ] Starten Sie eine interaktive Rebase mit git rebase -i <hash> .
  • [ ] Suchen Sie im Bearbeitungsbildschirm die Commit-Zeilen, die Sie entfernen möchten, und entfernen Sie sie.
  • [ ] Speichern und beenden (möglicherweise müssen Sie die Konflikte lösen)
  • [ ] Beenden Sie das interaktive Rebase mit git rebase --continue oder beginnen Sie von vorne, indem Sie das Rebase abbrechen .

Schritt 2 – Löschen Sie die Commits aus der Ferne

Um Commits aus der Ferne zu löschen, müssen Sie Ihre lokalen Änderungen mit dem Befehl „git push“ auf die Ferne übertragen.


 git push origin HEAD --force


Da Ihr lokaler Verlauf vom Remote-Verlauf abweicht, müssen Sie die force Option verwenden.

Abschließende Gedanken

Wie Sie sehen, erleichtert Git das Löschen von Commits von einem Remote-Server.


Sie müssen jedoch vorsichtig sein, wenn Sie den Befehl git push mit der Option „ force verwenden, da Sie den Fortschritt verlieren könnten, wenn Sie nicht vorsichtig sind.


Vielen Dank fürs Lesen!