Skip to content
Commencer

Lab Niveau 13 — Réparer et Stasher

  • Annuler des modifications locales non indexées.
  • Désindexer un fichier indexé par erreur.
  • Réorganiser l’historique récent avec git reset.
  • Mettre de côté des modifications en cours avec git stash.
  • Restaurer un commit supprimé par erreur à l’aide de git reflog.

Dans votre dépôt de TP local, réalisez la suite de manipulations suivantes :

Étape 1 : Nettoyage local et Désindexation

Section titled “Étape 1 : Nettoyage local et Désindexation”
  1. Modifiez le fichier index.html en y ajoutant du texte temporaire, et créez un nouveau fichier temp.log.
  2. Ajoutez temp.log à l’index avec git add temp.log.
  3. Retirez temp.log de l’index en utilisant la commande git restore.
  4. Annulez les modifications de index.html pour retrouver l’état propre du dernier commit.
  1. Faites deux commits successifs bidon (ex: en modifiant un fichier texte ou en créant un fichier test-reset.txt).
  2. Annulez le tout dernier commit tout en conservant les fichiers modifiés et indexés (Staging Area) en utilisant le bon mode de git reset.
  3. Annulez ensuite complètement le commit précédent et nettoyez votre Working Directory en utilisant le mode destructeur de git reset.

Étape 3 : Travailler dans l’urgence (Stash)

Section titled “Étape 3 : Travailler dans l’urgence (Stash)”
  1. Modifiez index.html en ajoutant un commentaire <!-- WIP -->.
  2. Mettez cette modification en attente (stash) pour retrouver un espace de travail propre.
  3. Vérifiez que git status indique que votre répertoire est propre.
  4. Restaurez votre travail en cours à l’aide de la commande adéquate.
  1. Créez un fichier important.txt contenant le texte “Donnees precieuses”. Commitez-le avec le message "feat: add important data".
  2. Lancez un git reset --hard HEAD~1. Le fichier important.txt a disparu !
  3. Utilisez git reflog pour identifier l’identifiant (SHA-1) du commit contenant vos données précieuses.
  4. Restaurez ce commit en effectuant un reset hard vers cet identifiant. Vérifiez que important.txt est bien revenu.

  • Les modifications locales erronées ont été écrasées avec git restore.
  • Le fichier indexé par erreur a été retiré de l’index.
  • Les différents modes de git reset (soft / hard) ont été expérimentés.
  • Les modifications WIP ont été cachées temporairement, puis restaurées avec git stash pop.
  • Le commit perdu a été récupéré avec succès grâce au reflog.

  • Annulation de modifications locales
  • Manipulation des modes de git reset
  • Gestion des modifications en attente avec git stash
  • Diagnostic et récupération avec git reflog

Question

Quelle commande Git liste l'historique complet de toutes les actions de la tête d'écriture (HEAD) ?

Cliquer pour révéler la réponse
Réponse

git reflog

Cliquer pour voir la question
Question

Quel reset déplace HEAD sans toucher à l'index ni au répertoire de travail ?

Cliquer pour révéler la réponse
Réponse

git reset --soft

Cliquer pour voir la question
Question

Comment appliquer un stash spécifique sans le supprimer de la liste ?

Cliquer pour révéler la réponse
Réponse

git stash apply stash@{index}

Cliquer pour voir la question

Quelle commande détruit DEFINITIVEMENT le dernier commit ainsi que toutes les modifications en cours ?

Quelle commande permet de lister toutes les modifications mises de côté temporairement ?

Combien de temps un commit orphelin reste-t-il accessible via le reflog avant d'être supprimé définitivement ?

HashCode Workshops
Part of the JoinHashCode ecosystem

Ctrl + K Rechercher dans les workshops