Déplacer la tête à un commit antérieur
La commande reset
est utilisée pour retirer des modifications du staging, mais peut également permettre de revenir à un état antérieur du projet lorqu'on passe une référence à un commit et une option --mode
:
git reset
Note: retirer toutes les modifications du staging avec la commande
git reset
est en réalité le comportement par défaut, correspondant au modemixed
et au dernier commit.
Soft / Hard
En mode soft, l'historique est réinitialisé au commit indiqué mais les fichiers ne sont pas réinitialisés, ce qui réécrit donc uniquement l'historique.
En mode hard, l'historique et les fichiers sont réinitialisés à l'état du commit indiqué. Après un hard reset, on peut également exécuter la commande suivante pour supprimer les fichiers non suivis par Git (qui ont probablement été rajoutés après le commit auquel on a reset):
git reset bbd7c93 --hard
[output]HEAD is now at bbd7c93 Ajoute une documentation sur le staging
git clean -df
Attention: déplacer la tête signifie réécrire l'historique. Ne jamais réécrire l'historique qui a déjà été partagé avec votre équipe ! Ce type d'opération est à réaliser uniquement pour les commits locaux.