Mise à jour :
En raison de changements dans la façon dont les branches de suivi sont créées et poussées, je ne recommande plus de renommer les branches. C'est ce que je recommande maintenant :
Faire une copie de la branche dans son état actuel :
git branch crazyexperiment
(Le git branch <name>
vous laissera avec votre branche actuelle toujours extraite).
Réinitialisez votre branche actuelle vers le commit souhaité avec git reset
:
git reset --hard c2e7af2b51
(Remplacer c2e7af2b51
avec le commit sur lequel vous voulez revenir).
Lorsque vous décidez que votre branche "crazy experiment" ne contient plus rien d'utile, vous pouvez la supprimer avec :
git branch -D crazyexperiment
Il est toujours agréable, lorsque l'on commence à utiliser des commandes git modifiant l'historique (reset, rebase), de créer des branches de sauvegarde avant de les exécuter. Finalement, une fois que vous serez à l'aise, vous ne trouverez pas cela nécessaire. Si vous modifiez votre historique d'une manière que vous ne voulez pas et que vous n'avez pas créé de branche de sauvegarde, regardez dans git reflog
. Git conserve les commits pendant un certain temps même s'il n'y a pas de branches ou de tags pointant vers eux.
Réponse originale :
Une façon un peu moins effrayante de le faire que l'option git reset --hard
est de créer une nouvelle branche. Supposons que vous êtes sur la branche master
et le commit auquel vous voulez revenir est c2e7af2b51
.
Renommez votre branche principale actuelle :
git branch -m crazyexperiment
Vérifiez votre bon engagement :
git checkout c2e7af2b51
Faites votre nouvelle branche master ici :
git checkout -b master
Maintenant, vous avez toujours votre expérience folle à portée de main si vous voulez y jeter un coup d'oeil plus tard, mais votre branche principale est de retour à votre dernier bon point connu, prêt à être ajouté. Si vous voulez vraiment jeter votre expérience, vous pouvez utiliser :
git branch -D crazyexperiment