Supponendo un grafico di commit in questo modo:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
Vuoi prima effettuare il checkout mastere creare un ramo che punti a dove si mastertrova attualmente:
git checkout master
git branch pointer master
Dovrebbe assomigliare a questo ora:
| (A) ---------> (B) ----------> (C)
| ^
| (HEAD, master, pointer)
Ora che sei già attivo master, diremo al masterramo di andare indietro di un commit:
git reset master~1
Ora, masterdovrebbe essere spostato indietro di uno spazio, ma il pointerramo è ancora sul commit più recente:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
A questo punto, puoi eseguire il push mastersu un telecomando, o dove mai, quindi unirlo rapidamente al pointerramo. Puoi uccidere il pointerramo a quel punto:
git push origin master
git merge --ff-only pointer
git branch -D pointer
Finale :
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)