Menu
Coddy logo textTech

Réinitialiser une branche

Fait partie de la section Gestion de versions du Journey Terminal de Coddy — leçon 44 sur 58.

git reset déplace le pointeur de la branche actuelle vers un commit différent. L'utilisation la plus courante consiste à annuler des commits récents que vous n'avez pas encore partagés.

git reset --hard HEAD~1

Cela déplace main d'un commit en arrière et écrase le répertoire de travail pour qu'il corresponde. Le commit que vous avez sauté n'est plus accessible depuis votre branche (Git le conserve pendant un certain temps au cas où vous changeriez d'avis, mais attendez-vous à ce qu'il disparaisse).

Il existe trois variantes de reset :

  • --soft : déplace le pointeur de branche ; conserve les modifications indexées (staged)
  • --mixed (par défaut) : déplace le pointeur ; désindexe (unstage) mais conserve les fichiers de travail
  • --hard : déplace le pointeur ; supprime également les modifications des fichiers de travail

--hard est la forme la plus destructive. C'est idéal pour corriger des erreurs locales, mais ne l'utilisez jamais sur des commits que d'autres personnes ont déjà récupérés.

challenge icon

Défi

Moyen

Le dossier contient doc.md. Initialisez le dépôt et créez trois commits dans l'ordre :

  1. Ajoutez doc.md avec le message Add doc.
  2. Ajoutez second à doc.md, commitez avec le message Second draft.
  3. Ajoutez third à doc.md, commitez avec le message Third draft.

Effectuez un hard-reset de la branche vers le tout premier commit en utilisant HEAD~2. Affichez le contenu de doc.md.

Aide-mémoire

git reset déplace le pointeur de la branche actuelle vers un commit différent. Trois variantes :

  • --soft : déplace le pointeur ; conserve les modifications indexées (staged)
  • --mixed (par défaut) : déplace le pointeur ; désindexe mais conserve les fichiers de travail
  • --hard : déplace le pointeur ; abandonne les modifications des fichiers de travail
git reset --hard HEAD~1  # annuler le dernier commit, abandonner les modifications
git reset --hard HEAD~2  # annuler les 2 derniers commits

Avertissement : N'utilisez jamais --hard sur des commits que d'autres ont déjà récupérés (pull).

Essayez vous-même

Terminal
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Gestion de versions