Wie kann ich mein Git-Repository auf einen bestimmten Commit umstellen

Lesezeit: 3 Minuten

Wie kann ich mein Git Repository auf einen bestimmten Commit umstellen
michael

In meinem Git-Repository habe ich 5 Commits vorgenommen, wie unten in meinem Git-Protokoll:

commit 4f8b120cdafecc5144d7cdae472c36ec80315fdc
Author: Michael 
Date:   Fri Feb 4 15:26:38 2011 -0800

commit b688d46f55db1bc304f7f689a065331fc1715079
Author: Michael
Date:   Mon Jan 31 10:37:42 2011 -0800

commit b364f9dcec3b0d52666c4f03eb5f6efb7e1e7bda
Author: Michael
Date:   Wed Jan 26 13:33:17 2011 -0800

commit 4771e26619b9acba3f059b491c6c6d70115e696c
Author: Michael 
Date:   Wed Jan 26 11:16:51 2011 -0800

commit 6e559cb951b9bfa14243b925c1972a1bd2586d59
Author: Michael 
Date:   Fri Jan 21 11:42:27 2011 -0800

Wie kann ich meine vorherigen 4 Commits lokal in einem Branch zurücksetzen? Mit anderen Worten, wie kann ich einen Zweig ohne meine letzten 4 Commits erstellen (vorausgesetzt, ich habe den SHA dieses Commits aus dem Git-Protokoll)?

1643917086 507 Wie kann ich mein Git Repository auf einen bestimmten Commit umstellen
Artefakt

So erstellen Sie einen neuen Zweig (lokal):

  • Mit dem Commit-Hash (oder einem Teil davon)

    git checkout -b new_branch 6e559cb
    
  • oder um 4 Commits von HEAD zurückzugehen

    git checkout -b new_branch HEAD~4
    

Sobald Ihr neuer Branch (lokal) erstellt wurde, möchten Sie diese Änderung möglicherweise auf einem Remote-Zweig mit demselben Namen replizieren: How can I push my changes to a remote branch


Für Verwerfen der letzten drei Commitssiehe Lunaryorns Antwort unten.


Für Verschieben Sie Ihren aktuellen Zweig HEAD zum angegebenen Commit, ohne einen neuen Zweig zu erstellensiehe Arpiagars Antwort unten.

1643917087 248 Wie kann ich mein Git Repository auf einen bestimmten Commit umstellen
Arpigar

Alle oben genannten Befehle erstellen einen neuen Zweig und der letzte Commit ist der im Befehl angegebene, aber nur für den Fall, dass Sie Ihren aktuellen Zweig möchten HEAD Um zum angegebenen Commit zu wechseln, folgt der Befehl:

 git checkout <commit_hash>

Es löst sich und zeigen Sie die HEAD zu einem bestimmten Commit und erspart das Erstellen eines neuen Zweigs, wenn der Benutzer nur den Zweigstatus bis zu diesem bestimmten Commit anzeigen möchte.


Vielleicht möchten Sie dann zum letzten Commit zurückkehren und den abgetrennten HEAD reparieren:

Einen abgelösten Git-Kopf reparieren?

  • Dies würde den Kopf lösen. Nicht bequem.

    – IgorGanapolsky

    19. Mai 16 um 19:27 Uhr

  • auch wenn die <commit_hash> ist in einer anderen Branche, die voraus ist?

    – Ciasto piekarz

    23. Mai ’18 um 8:35 Uhr

  • Die verknüpfte Frage sagt nur zu git checkout masterneben ein oder zwei Randfällen, die auf bestimmte Situationen zutreffen können.

    – i336_

    26. Juni 19 um 10:03 Uhr


Wenn Sie die letzten vier Commits wegwerfen möchten, verwenden Sie:

git reset --hard HEAD^^^^

Alternativ können Sie den Hash eines Commits angeben, auf den Sie zurücksetzen möchten:

git reset --hard 6e559cb

  • Dies lässt den Verzweigungsschritt aus. Wenn er genau das ausführt, was hier gezeigt wird, verliert er diese Top-Commits dauerhaft.

    – Jimmy

    9. Februar 11 um 0:19 Uhr

  • Naja, nicht unbedingt dauerhaft – man könnte den SHA des vorherigen Kopfes per bekommen git reflog und darauf zurücksetzen – aber es würde sie wegwerfen, ja.

    – Bernstein

    9. Februar 11 um 0:21 Uhr

  • Wenn die Commits zuerst gepusht und dann zurückgesetzt werden, können sie mit nur einem Pull erneut abgerufen werden.

    – Rick Smith

    19. März 18 um 5:02 Uhr

  • Ich würde empfehlen, zuerst zu einem neuen Branch zu wechseln, bevor Sie diesen Befehl ausführen, da dies alle Ihre letzten Änderungen entfernt und Ihren Branch zu einem bestimmten Commit in der Vergangenheit verschiebt

    – Mahesh Jamdade

    26. November 2020 um 6:55 Uhr

  • Es löscht Ihre All-Headed-Commits. Ich denke, das Beste ist, bei einem bestimmten Commit einen neuen Zweig zu erstellen.

    – Syed Haseeb

    1. Juli 21 um 4:09 Uhr


Checken Sie einfach den Commit aus, von dem aus Ihr neuer Branch beginnen soll, und erstellen Sie einen neuen Branch

git checkout -b newbranch 6e559cb95

Wie kann ich meine vorherigen 4 Commits lokal in einem Branch zurücksetzen?

Das heißt, Sie erstellen keinen neuen Zweig und gehen in den getrennten Zustand. Der neue Weg, dies zu tun, ist:

git switch --detach revison

  • Das habe ich gesucht. checkout ist eine Operation, die zu viele verschiedene Fähigkeiten hat.

    – Smiley1000

    10. Januar um 10:15 Uhr

  • Das habe ich gesucht. checkout ist eine Operation, die zu viele verschiedene Fähigkeiten hat.

    – Smiley1000

    10. Januar um 10:15 Uhr

.

759340cookie-checkWie kann ich mein Git-Repository auf einen bestimmten Commit umstellen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy