En supposant un graphe de validation comme ceci:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
Vous souhaitez d'abord effectuer le paiement masteret créer une branche qui pointe vers où masterse trouve actuellement:
git checkout master
git branch pointer master
Devrait ressembler à ceci maintenant:
| (A) ---------> (B) ----------> (C)
| ^
| (HEAD, master, pointer)
Maintenant que vous êtes déjà sur master, nous allons dire à la masterbranche de reculer d'un commit:
git reset master~1
Maintenant, masterdevrait être reculé d'un espace, mais la pointerbranche est toujours sur le commit le plus récent:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
À ce stade, vous pouvez pousser mastervers une télécommande, ou n'importe où, puis la fusionner en avance rapide vers la pointerbranche. Vous pouvez tuer la pointerbranche à ce stade:
git push origin master
git merge --ff-only pointer
git branch -D pointer
Finale:
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)