top of page
Search
  • fabricefontenoy

Qu'est-ce que l'index ou la staging area ?

Updated: Oct 5, 2023


Qu'est-ce que l'𝒊𝒏𝒅𝒆𝒙 ou la 𝒔𝒕𝒂𝒈𝒊𝒏𝒈 𝒂𝒓𝒆𝒂 de git ?


À la base de tout commit, l'index est une vraie force de 𝑔𝑖𝑡.

Pourtant, ce concept est souvent méconnu ou mal compris.


L'index est une zone de préparation pour votre prochain commit.

Avant de commiter, tu dois dire à 𝑔𝑖𝑡 quelles modifications tu veux commiter.


Tu vas me dire : "ben si j'ai modifié un fichier, je veux le commiter !"


Ben non pas forcément !


Imaginons que tu t'es senti pousser des ailes et que t'as résolu plusieurs bugs à la fois (ça m'arrive souvent 🤣).





C'est pas parce que t'as tout résolu d'un seul coup qu'il faut tout pousser comme un bourrin 😉.


Il est préférable de séparer tes commits pour plus facilement les retrouver dans ton historique et différencier les modifications effectuées.


Par exemple, si tu as introduit une régression lors d'une résolution de bug ou du développement d'une feature (ça, ça ne m'arrive jamais 🤣), tu pourras plus facilement localiser le problème, voire faire un revert de ta modification si la régression est trop importante et doit être corrigée rapidement. Dans ce dernier cas, si tu as tout mélangé dans ton commit, tout sera reverté. En séparant bien tes commits, tu limites l'impact d'un revert ,en plus de savoir exactement pourquoi et comment a été faite telle ou telle modification.


L'index permet de remplir un panier avec un ensemble cohérent de modifications que tu veux regrouper dans un commit, en laissant les autres modifications de côté pour les mettre plus tard dans un autre panier.


Je donne souvent l'image d'un agriculteur qui prépare ses paniers pour les livrer. Dans son hangar, il a plein de fruits et légumes mais il ne va pas tout donner au même client. Il doit remplir un panier par client avec les fruits et légumes que le client a commandé :

  • Il prend un panier vide

  • Il remplit le panier en fonction de la demande

  • Si un fruit ou légume est pourri, il le retire du panier pour ne pas le livrer

  • Une fois que son panier est prêt, il ajoute un message avec le contenu du panier, le vendeur (donc lui) et la date de préparation du panier

  • Et enfin, il met son panier dans son camion prêt pour partir pour sa tournée de livraison

Analogie de l'index avec la préparation d'un panier

Si on fait l'analogie avec git, le panier c'est notre index, le message c'est notre message de commit et le camion, c'est notre répertoire git local.


Une fois qu'on a fini un développement, on met les modifications que l'on veut commiter dans l'index (git add) et uniquement celles-là. Si on a ajouté une modification par erreur, on peut la retirer (git reset). Et une fois que notre index est prêt, on le commit (git commit) en ajoutant un message (et notre commit reste chez nous, dans notre répertoire local, tant qu'on a pas poussé).


Mais 𝑔𝑖𝑡 permet également de mettre qu'une partie d'un fichier dans l'index grâce à l'ajout interactif comme si tu pouvais mettre dans ton panier qu'une demi-pomme.


Mais ça, ça fera l'objet d'un post ultérieur 😉



----


Vous avez aimé cette article ? Vous voulez devenir un expert git ?

N'hésitez pas à me contacter !




58 views

Recent Posts

See All

Comments


bottom of page