Supponendo un grafico di commit in questo modo:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
Vuoi prima effettuare il checkout master
e creare un ramo che punti a dove si master
trova 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 master
ramo di andare indietro di un commit:
git reset master~1
Ora, master
dovrebbe essere spostato indietro di uno spazio, ma il pointer
ramo è ancora sul commit più recente:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
A questo punto, puoi eseguire il push master
su un telecomando, o dove mai, quindi unirlo rapidamente al pointer
ramo. Puoi uccidere il pointer
ramo a quel punto:
git push origin master
git merge --ff-only pointer
git branch -D pointer
Finale :
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)