Angenommen, ein Commit-Diagramm wie folgt:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
Sie möchten zuerst auschecken masterund einen Zweig erstellen, der auf die masteraktuelle Position verweist :
git checkout master
git branch pointer master
Sollte jetzt so aussehen:
| (A) ---------> (B) ----------> (C)
| ^
| (HEAD, master, pointer)
Jetzt, da Sie bereits aktiv sind master, weisen wir den masterZweig an, ein Commit rückwärts zu verschieben:
git reset master~1
Jetzt mastersollte ein Leerzeichen zurück verschoben werden, aber der pointerZweig befindet sich noch im letzten Commit:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
An diesem Punkt können Sie masterauf eine Fernbedienung drücken oder wo immer Sie sie dann schnell wieder in den pointerZweig zurückführen . Sie können den pointerZweig an diesem Punkt töten :
git push origin master
git merge --ff-only pointer
git branch -D pointer
Finale:
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)