Indexer des fichiers modifiés

10 min Niveau 2

Modifier un fichier déjà sous suivi de version. Si vous apportez des modifications à un fichier suivi par Git, tel que "CONTRIBUTING.md", et que vous exécutez à nouveau la commande git status, vous obtiendrez la sortie suivante :

$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui seront validées :
  (utilisez "git reset HEAD <fichier>..." pour désindexer)

        nouveau fichier : LISEZMOI

Modifications qui ne seront pas validées :
  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
  (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)

        modifié :         CONTRIBUTING.md

Le fichier "CONTRIBUTING.md" apparaît dans la section "Modifications qui ne seront pas validées", ce qui signifie qu'il a été modifié dans la copie de travail, mais qu'il n'a pas encore été indexé. Pour l'indexer, vous devez exécuter la commande git add. git add est une commande polyvalente : elle peut être utilisée pour mettre un fichier sous suivi de version, indexer un fichier ou effectuer d'autres actions, telles que marquer des conflits de fusion comme résolus. Son sens est davantage "ajouter ce contenu pour la prochaine validation" que "ajouter ce contenu au projet".

Exécutons maintenant git add pour indexer le fichier "CONTRIBUTING.md", puis vérifions à nouveau l'état avec git status :

$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui seront validées :
  (utilisez "git reset HEAD <fichier>..." pour désindexer)

        nouveau fichier : LISEZMOI
        modifié :         CONTRIBUTING.md

Désormais, les deux fichiers sont indexés et seront inclus dans la prochaine validation. Supposons toutefois que vous souhaitiez apporter une autre petite modification au fichier "CONTRIBUTING.md" avant de le valider. Vous l'ouvrez à nouveau, effectuez la modification, et vous êtes prêt à valider. Cependant, si vous exécutez git status une dernière fois, vous obtenez ceci :

$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui seront validées :
  (utilisez "git reset HEAD <fichier>..." pour désindexer)

        nouveau fichier : LISEZMOI
        modifié :         CONTRIBUTING.md

Modifications qui ne seront pas validées :
  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
  (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)

        modifié :         CONTRIBUTING.md

Que s'est-il passé ? Désormais, "CONTRIBUTING.md" apparaît à la fois comme indexé et non indexé. En fait, Git indexe un fichier dans l'état où il se trouvait au moment où la commande "git add" a été exécutée. Si vous validez les modifications maintenant, la version de "CONTRIBUTING.md" qui sera incluse dans le commit sera celle qui existait au moment où la commande git add CONTRIBUTING.md a été exécutée, et non la version actuelle dans la copie de travail au moment où la commande git commit est lancée. Si le fichier est modifié après un git add, vous devez réexécuter git add pour prendre en compte l'état actuel de la copie de travail :

$ git add CONTRIBUTING.md
$ git status
Sur la branche master
Votre branche est à jour avec 'origin/master'.
Modifications qui seront validées :
  (utilisez "git reset HEAD <fichier>..." pour désindexer)

        nouveau fichier : LISEZMOI
        modifié :         CONTRIBUTING.md
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus