|<- [[get:Viewing the commit log]]|[[get:The Git workflow]] ->| ====== Two-tree architecture ===== Repository + Working On les appelle tree car ils représente une structure de fichiers. Deux termes existent concernant les échanges : * commit : pour les échanges depuis le **working** vers le **repository** * checkout : pour les échanges depuis le **repository** vers le **working** Les deux trees ont chacun leur structure de fichier indépendante. On fait un commit pour ajouter des informations du **working** au **dépôt**, et on checkout pour récupérer des informations du **dépôt** vers le **working**. ====== Three-tree architecture ===== Repository + staging Index + Working Ici : * add : pour les échanges depuis le **working** vers le **staging index** * commit : pour les échanges depuis le staging index vers le **repository** * checkout : (inchangé) pour les échanges depuis le **repository** vers le **working** On peut avoir différentes modifications faites dans notre **working**, mais n'en //adder// que certaines vers le **staging index** afin d'en faire un **commit**.