Mécanismes des trois zones Git : Espace de travail, Index et Dépôt local
Git gère les modifications via trois zones distinctes qui structurent son flux de travail. Chaque zone joue un rôle spécifique dans le contrôle de version.
Espace de travail : Zone d'édition
L'espace de travail contient les fichiers actuellement modifiés sur le système. Les changements ici ne sont pas suivis par Git tant qu'ils ne sont pas explicitement ajoutés.
- Comportement : Les fichiers nouveaux ou modifiés sont marqués "Non suivis" ou "Modifiés"
- Commande d'inspection :
git statusrévèle l'état actuel
git status
# Affiche :
# Modifications non indexées : script.py
# Fichiers non suivis : nouveau_fichier.txt
Index : Zone de préparation
L'index sert d'étape intermédiaire où les modifications sont préparées pour enregistrement permanent. Il permet une sélection granulaire des changements.
- Fonction prinicpale : Isoler les modifications spécifiques à valider
- Avantage : Permet des validations atomiques ciblées
git add moduleA.js # Ajoute un fichier spécifique
git add . # Ajoute toutes les modifications locales
Après ajout, git status indique "Modifications à valider". L'index conserve une copie temporaire jusqu'à la validation.
Dépôt local : Historique versionné
Le dépôt local stocke définitivement les versions validées sous forme d'instantanés immuables identifiés par empreinte SHA-1.
git commit -m "Refactorisation algorithmique"
git log --oneline # Liste l'historique condensé
Les principales opérations incluent :
- Navigation historique :
git checkout commit_id - Annulation de validation :
git revert HEAD
Interaction des zones
Flux standard :
- Modifier un fichier dans l'espace de travail
- Ajouter au niveau de l'index :
git add fichier - Valider dans le dépôt :
git commit
Comandes d'annulation :
- Retirer de l'index :
git reset fichier - Rejeter les modifications locales :
git restore fichier
Cas pratique
Développement d'une fonctionnalité :
# 1. Modification dans l'espace de travail
echo "fonctionnalité" > code.js
# 2. Préparation sélective
git add code.js
# 3. Validation permanente
git commit -m "Implémentation fonctionnalité"
Questions fréquentes
- Utilité de l'index : Permet de segmenter les modifications avant validation
- Validation directe impossible : Nécessite toujours l'étape
git add