Commit aus dem Remote-Repository in Git löschen

Abdul Jabbar 30 Januar 2023
  1. Commit aus dem lokalen Repository in Git löschen
  2. Commit aus dem Remote-Repository in Git löschen
Commit aus dem Remote-Repository in Git löschen

Bei der Arbeit mit Git stellen wir manchmal fest, dass Commits schief gelaufen sind und entfernt werden müssen. Der Grund könnte sein, dass die Kunden diese Arbeit im Produkt nicht wollen.

Entweder haben wir einen Fehler eingeführt oder es muss erneut daran gearbeitet werden, da wir die falsche Implementierung begangen haben.

In diesem Artikel wird erläutert, wie wir die lokalen und Remote-Repositories löschen und alle diese Repositories mit dem Git-Befehl bereinigen können.

In Git können wir Commits durch zwei verschiedene Verfahren löschen. Und diese Prozeduren hängen von den Änderungen ab, unabhängig davon, ob sie an den Remote-Zweig gepusht werden oder nicht.

Commit aus dem lokalen Repository in Git löschen

Wenn unsere Änderungen noch nicht in das Remote-Repository übertragen wurden, können wir den letzten Commit mit dem folgenden Befehl lokal löschen:

git reset --hard HEAD~1

Der oben erwähnte Befehl verwirft alle Änderungen, die im Ordner (Arbeitsbaum) vorgenommen wurden, und verschiebt den HEAD auf den letzten Commit vor dem HEAD.

Wenn wir die Commits bis zu einem bestimmten Commit löschen wollen, führen wir git log aus, um nach der bestimmten Commit-ID zu suchen. Danach werden wir diese Commits mit dem folgenden erwähnten Befehl löschen:

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

Dieser zuvor erwähnte Befehl verwirft alle Änderungen, die im Arbeitsbaum vorgenommen wurden, und verschiebt den HEAD zu dem von uns ausgewählten Commit.

Commit aus dem Remote-Repository in Git löschen

Wenn wir den Commit aus dem Remote-Repository löschen wollen, werden wir den neuen Commit HEAD erzwingen. Wenn wir unsere Änderungen bereits in das Remote-Repository übertragen haben, führen wir alternativ den folgenden Befehl aus:

git push origin HEAD --force

Wenn jemand anderes diesen Zweig gezogen hat, ist es besser, einen neuen Zweig zu beginnen; Andernfalls wird es in ihre Arbeit integriert, und in diesem Fall müssen wir denselben Zweig erneut zurückdrängen.

Dadurch wird der Commit aus beiden Repositories gelöscht: lokal und remote. Wenn wir es nur von der Fernbedienung und nicht von lokal löschen müssen, führen wir den folgenden erwähnten Befehl aus:

git push origin +HEAD^:branch_name

Bevor wir diese Befehle ausführen, sollten wir einen zweiten Blick darauf werfen, da dadurch alle unsere Arbeitsverzeichnisänderungen gelöscht werden.

Wenn wir diesen Commit nach dem Löschen erneut durchsuchen möchten, wäre er vorzugsweise in <git reflog> vorhanden, es sei denn, unser Repository wurde einer Garbage Collection unterzogen.

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 Delete