• 6 hours
  • Easy

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 1/19/24

Pratiquez et corrigez vos erreurs sur un dépôt local

Git est un outil merveilleux, mais on a vite fait de créer une branche alors qu’on ne le souhaitait pas, de modifier la branche principale ou encore d’oublier des fichiers dans ses commits. Mais ne vous inquiétez pas, nous allons voir ensemble que toutes ces petites erreurs ne sont pas difficiles à corriger avec les bonnes techniques

Je vous propose de créer un bac à sable pour vous entraîner et mettre en œuvre ce que vous avez vu précédemment.

Tout d’abord, créez un dossier "Test", qui sera notre dépôt Git, et dirigez-vous dans ce dossier.

mkdir Test
cd Test
Créez un dépôt local
Créez un dépôt local

Initialisez le dépôt avec la commande git init.

Votre dépôt est maintenant initialisé. Si vous faites apparaître les dossiers masqués, vous pouvez voir le dossier .git.

Grâce à la ligne de commande  ls -la, vous pouvez faire apparaître les dossiers cachés. 😉

Affichez les dossiers masqués
Affichez les dossiers masqués

Passons à nos erreurs !

J’ai créé une branche que je n’aurais pas dû créer

Votre bac à sable est prêt !

Avant de créer une branche, vous devez créer votre branche principale.

Pour cela, il vous suffit d’ajouter un fichier et de le commiter.

Créez un fichier "PremierFichier.txt" dans votre répertoire Test :

touch PremierFichier.txt

Ajoutez-le avec la commande :

git add PremierFichier.txt
git commit

On vous demande alors d'indiquer le message du commit puis de valider. Pour valider le message, une fois que vous l'avez écrit, appuyez sur Echap (votre curseur va basculer sur la dernière ligne) et tapez    :x  .

Cette commande va sauvegarder et quitter l'éditeur des messages de commit.

Si votre branche principale se nomme master et non main, lancez les commandes suivantes comme vu dans les précédents chapitres :

git branch -M main

Vous allez maintenant créer une branche autre que la branche principale.

git branch brancheTest

Cette commande, comme nous l'avons vu précédemment, va créer la branche “brancheTest”.

Vous pouvez d'ailleurs le vérifier avec la commande git branch :

Youppiiii !

Arf... En fait, non, nous voulions ajouter nos fichiers avant de la créer et nous sommes maintenant bloqués avec cette branche que nous ne voulions pas tout de suite.

Heureusement, il est très simple sous Git de supprimer une branche que nous venons de créer. Pour cela, il suffit d'exécuter la commande :

git branch -d brancheTest

Tadammm !    Notre branche est supprimée et nous pouvons ajouter dans un premier temps nos fichiers avant de créer la branche.

Si vous avez déjà fait des modifications dans la branche que vous souhaitez supprimer, vous pouvez la supprimer avec la commande :

git branch -D brancheTest

J’ai modifié la branche principale

L’erreur est humaine et il peut arriver de modifier une branche principale par erreur... Dans ce cas, ne paniquez pas !

Si vous avez modifié votre branche principale (main ou master) avant de créer votre branche et que vous n'avez pas fait le commit, ce n’est pas bien grave. Il vous suffit de faire une remise - ou un stash en anglais.

Voyons maintenant comment cela fonctionne !

Allez sur votre branche principale pour modifier des fichiers.

Vous pouvez à tout moment voir l’état dans lequel sont vos fichiers, c’est-à-dire voir les changements qui ont été indexés ou ceux qui ne l’ont pas été, avec la commande suivante :

git status

Vous pouvez voir vos fichiers modifiés mais qui n'ont pas encore été commités.

Créez un stash avec la commande suivante :

git stash

Cela vous donne :

Assurez-vous que votre branche principale soit de nouveau propre, en faisant un nouveau   git status  .

Vous devriez avoir :

Parfait ! C'est exactement ce que nous voulions. Maintenant, créez votre branche "brancheCommit".

git branch brancheCommit

Vous obtenez donc :

Vous allez basculer sur cette branche.

git checkout brancheCommit

Ce qui nous donne :

Et finalement, vous pouvez appliquer le stash pour :

  • récupérer les modifications que vous avez rangées dans le stash

  • Appliquer ces modifications sur votre nouvelle branche.

git stash apply

Cette commande va appliquer le dernier stash qui a été fait.

Si pour une raison ou une autre, vous avez créé plusieurs stash, et que le dernier n'est pas celui que vous souhaitez appliquer, pas de panique, il est possible d’en appliquer un autre..

En premier lieu, regardez la liste de vos stash avec la commande suivante :

git stash list

Cette commande va vous retourner un "tableau" des stash avec des identifiants du style :

Il suffira alors d'appeler la commande    git stash  en indiquant l'identifiant.

git stash apply stash@{0}

Et voilà, le tour est joué !

J’ai modifié la branche après avoir fait un commit

Maintenant, admettons que vous ayez réalisé vos modifications et qu'en plus vous ayez fait le commit. Le cas est plus complexe, puisque vous avez enregistré vos modifications sur la branche principale, alors que vous ne deviez pas.

Allez-y, modifiez des fichiers, et réalisez le commit.

Pour réparer cette erreur, vous devez analyser vos derniers commits avec la fonction    git log  . Vous allez alors récupérer l'identifiant du commit que l'on appelle couramment le hash

Par défaut,   git log  va vous lister par ordre chronologique inversé tous vos commits réalisés. Nous reviendrons également en détails sur cette commande dans ce chapitre.

$ git log commit 
ca83a6dff817ec66f443420071545390a954664949 Author: Marc 
<Marc@gee-mail.com> Date: Mon Mar 19 21:52:11 2019 -0700

Maintenant que vous disposez de votre identifiant, gardez-le bien de côté. Vérifiez que vous êtes sur votre branche principale et réalisez la commande suivante :

git reset --hard HEAD^

Cette ligne de commande va supprimer de la branche principale votre dernier commit.  Le HEAD^ indique que c'est bien le dernier commit que nous voulons supprimer. L’historique sera changé, les fichiers seront supprimés.

Créez ensuite votre nouvelle branche.

git branch brancheCommit

Vous allez basculer sur cette branche.

git checkout brancheCommit

Maintenant, vous êtes sur la bonne branche.

Renouvelez la commande   git reset , qui va appliquer ce commit sur votre nouvelle branche !

git reset --hard ca83a6df

Et voilà, le tour est joué ! :D

Le message de mon commit est erroné

Lorsque l'on travaille sur un projet avec Git, il est très important de marquer correctement les modifications effectuées dans le message descriptif. Cependant, si vous faites une erreur dans l'un de vos messages de commit, il est possible de changer le message après coup. Je vous montre comment faire dans la vidéo ci-dessous.

Attention ! Cette commande va fonctionner pour le dernier commit réalisé ! Lorsque l'on travaille sur un projet avec Git, il est très important de marquer correctement les modifications effectuées dans le message descriptif. Cependant, si vous faites une erreur dans l'un de vos messages de commit, il est possible de changer le message après coup.

Imaginez que vous veniez de faire un commit et que vous ayez fait une erreur dans votre message. L'exécution de cette commande, lorsqu'aucun élément n'est encore modifié, vous permet de modifier le message du commit précédent sans modifier son instantané. L'option -m permet de transmettre le nouveau message.

git commit --amend -m "Votre nouveau message de commit"

Et on vérifie avec    git log  :

 

Elle est pas belle la vie ?

J’ai oublié un fichier dans mon dernier commit

Imaginez maintenant (je sais, il faut beaucoup d'imagination dans ce cours) que vous ayez fait votre commit mais que vous réalisiez que vous avez oublié un fichier. Ce n'est pas bien grave ! Il suffit de réutiliser la commande    git --amend  , d'une autre manière. La fonction    git --amend  , si vous avez bien compris, permet de modifier le dernier commit.

Réutilisez cette fonction sans le -m qui permettait de modifier son message.

Dans un premier temps, ajoutez votre fichier, puis réalisez le    git --amend  .

git add FichierOublie.txt
git commit --amend --no-edit

Votre fichier a été ajouté à votre commit et grâce à la commande   --no-edit  que vous avez ajoutée, vous n'avez pas modifié le message du commit.

git commit --amend  vous permet de sélectionner le dernier commit afin d'y ajouter de nouveaux changements en attente. Vous pouvez ajouter ou supprimer des changements afin de les appliquer avec    commit --amend  .

Si aucun changement n'est en attente,    --amend  vous permet de modifier le dernier message de log du commit avec -m.

En résumé

  • git branch -d permet de supprimer une branche.

  • git status permet de voir l’état des fichiers.

  • git stash enregistre les modifications non indexées pour une utilisation ultérieure. 

  • git log affiche l'historique des commits réalisés sur la branche courante.

  • git reset --hard HEAD^ permet de réinitialiser l'index et le répertoire de travail à l'état du dernier commit.

  • git commit --amend permet de sélectionner le dernier commit pour y effectuer des modifications.

Vous savez maintenant comment corriger les erreurs les plus courantes sur votre dépôt local. Mais comment procéder si vous vous trompez sur votre dépôt distant ? C'est ce que nous allons découvrir dans le prochain chapitre !

Example of certificate of achievement
Example of certificate of achievement