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 😎.
Bevor Sie den Git-Verlauf manipulieren, stellen Sie mit dem Befehl git status sicher, dass Ihr Arbeitsverzeichnis frei von Änderungen ist.
Um Commits von einem Remote-Server zu löschen, müssen Sie sie zunächst aus Ihrem lokalen Verlauf entfernen.
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>
Wenn Sie jedoch nicht aufeinanderfolgende Commits entfernen möchten, müssen Sie eine interaktive Rebase verwenden.
git reflog
den letzten Commit-Hash, der alle Commits enthält, die Sie entfernen möchten.git rebase -i <hash>
.git rebase --continue
oder beginnen Sie von vorne, indem Sie das Rebase abbrechen .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.
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!