En supposant un commettras graphique comme ceci:
| (A) ---------> (B) ----------> (C)
| ^
| (master)
Vous voulez d'abord vérifier master
et de créer une branche qui indique où master
curre ntly est:
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 branche master
pour déplacer une arrière commit:
git reset master~1
maintenant, master
devrait être déplacé d'une case, mais la branche pointer
est toujours le plus récent engagement:
| (A) ---------> (B) ----------> (C)
| ^ ^
| (HEAD, master) (pointer)
À ce stade, vous pouvez pousser master
à une télécommande, ou si jamais, puis fusionner avancer rapidement revenir à la branche pointer
. Vous pouvez tuer la branche pointer
à ce moment:
git push origin master
git merge --ff-only pointer
git branch -D pointer
final:
| (A) ---------> (B) ----------> (C)
| ^ ^
| [ origin/master ] (HEAD, master)
Cela ne fonctionnera pas. 'git reset --hard' a renvoyé sa branche principale à l'ancien commit, donc' git checkout master' ne fera rien. – jtdubs
Vrai, merci pour la correction. +1 à vous, supprimerait aussi ma réponse mais je pense que l'étape 'commit --amend' est assez utile –
Qu'est-ce que' --amend'? – Shafizadeh