Vous pouvez utiliser le reflog pour trouver la première action avant que le rebasement ne commence, puis revenir à cette action avec --hard, par exemple
$ git reflog
b710729 HEAD@{0}: rebase: some commit
5ad7c1c HEAD@{1}: rebase: another commit
deafcbf HEAD@{2}: checkout: moving from master to my-branch
...
$ git reset HEAD@{2} --hard
Maintenant vous devriez être de retour avant le début du rebasement.
Pour trouver le bon endroit où réinitialiser, il suffit de choisir l'entrée la plus proche du haut qui n'a pas commencer par "rebase".
Approche alternative
Si le rebasement est le seule chose que vous avez fait sur la branche, c'est-à-dire que vous n'avez pas de commits/changements non poussés - alors vous pouvez simplement supprimer la branche locale avec git branch -D
et ensuite vérifier à nouveau :
$ git checkout my-branch
$ git rebase master
// not happy with result
$ git checkout master
$ git branch -D my-branch
$ git checkout my-branch
Ou pour le même effet, vous pouvez réinitialiser --hard à la branche d'origine :
$ git reset --hard origin/my-branch
Si vous avez fait cela alors que vous aviez d'autres commits non poussés, alors vous les aurez perdus. Dans ce cas, utilisez simplement l'approche reflog ci-dessus pour revenir à l'entrée reflog où vous avez fait le(s) commit(s).
4 votes
Git rebase --abort
2 votes
Que voulez-vous dire par "échoué" ? Avez-vous complet le rebasement, et vous n'aimez pas les résultats ? Ou bien vous avez rencontré des conflits et avez voulu arrêter le rebasement en plein milieu ? Je présume que c'est le premier cas, puisque vous ne peut pas pousser un conflit, un rebasement inachevé, mais je demande parce que ce sont deux questions différentes.
0 votes
Oui, anciennement. Merci.
3 votes
Duplicata possible de Annulation d'un rebasement git