Git est devenu le système le plus utilisé pour le contrôle de version et le partage de code. Si vous voulez aider à construire un logiciel open-source, ou si vous voulez travailler dans une équipe professionnelle, comprendre Git est indispensable..
Dans une série de cours Git sur Envato Tuts +, j’ai expliqué certains des concepts de base de Git, illustrés par des animations utiles..
Dans cette vidéo, vous en apprendrez plus sur les trois arbres: le HEAD, l'index et le répertoire de travail. Regardez comment j'explique le rôle de chacun et comment ils interagissent lorsque vous mettez à jour et validez du code.
Pour mieux comprendre le fonctionnement de Git, nous pouvons utiliser la métaphore des trois arbres. Ces arbres sont différentes collections de fichiers.
Pour le flux de travail consistant à ajouter et à récupérer des validations, Git utilise trois versions différentes de fichiers:
Chacune de ces arborescences a un travail différent: une arborescence pour écrire les modifications, une arborescence pour les organiser et une autre pour indiquer votre dernier commit sur une branche de votre référentiel Git..
Les fichiers dont le contenu peut être modifié se trouvent dans votre répertoire de travail. Les fichiers placés dans votre index sont en train d'être préparés pour être empaquetés dans un objet de validation. Ces commits sont enregistrés dans votre référentiel Git..
Les fichiers déjà validés sont des fichiers compressés. Ils sont hachés via un SHA-1, une fonction de hachage cryptographique. Les deux versions de fichier dans l'index et les commissions elles-mêmes sont enregistrées dans le dépôt Git, qui est simplement un répertoire .git au niveau racine de votre wrap..
Le répertoire de travail représente les fichiers réels sur le système de fichiers de votre ordinateur qui sont disponibles pour votre éditeur de code pour appliquer les modifications. Le répertoire de travail est une version d'un commit spécifique, une capture instantanée d'un projet que vous avez extrait. C’est la version de votre historique Git vers laquelle HEAD pointe, à tout moment..
"Extrait" signifie que vous avez les versions décompressées des fichiers extraits de votre référentiel Git, disponibles pour l'édition. L'indice représente ce qui est suivi. Vous pouvez également dire qu'il s'agit d'une liste de tous les fichiers pertinents pour votre référentiel Git..
L'index porte plusieurs noms. Lorsque les gens parlent de la zone de transfert, des fichiers intermédiaires, du cache ou du cache de répertoires, ils parlent tous de l'index. Vous pouvez voir l’index comme zone brouillon pour votre prochain commit, une zone temporaire pour préparer le prochain commit..
HEAD est la partie de git qui pointe vers vos branches, comme la branche master par défaut. C'est une référence, et le travail est simple mais extrêmement important. HEAD pointe vers la branche actuellement extraite, qui renvoie à son tour au dernier commit de cette branche. HEAD peut se déplacer non seulement dans le temps (lorsque vous récupérez les validations précédentes), mais également lorsque vous créez de nouvelles branches ou passez simplement à d'autres branches..
C'est également le moment dans votre historique Git que vous pouvez placer votre prochain commit sur le parent de votre prochain commit. A chaque nouvelle validation, il remplace sa référence à la branche actuellement extraite, par défaut, la branche principale, bien sûr..
Donc, HEAD est une référence qui change fréquemment et indique deux choses: la branche elle-même et, par là, le dernier commit sur cette branche..
Examinons de plus près le processus de traitement des fichiers dans Git. Il est essentiel de comprendre comment toutes ces pièces s’emboîtent. Vous aurez alors beaucoup plus de facilité à comprendre les fonctionnalités et les concepts plus avancés de Git..
Voici un exemple:
Dans cet exemple, nous avons validé deux versions de notre fichier. Et vous pouvez voir que les versions du référentiel, de l'index et du répertoire de travail sont identiques. Puisque ces fichiers font déjà l'objet d'un suivi, Git remarquera les différences lorsque vous modifiez l'un de ces fichiers dans le répertoire de travail..
Lorsque vous exécutez le statut git
vous verrez une liste des fichiers modifiés en rouge. Cela indique que vous avez des différences entre votre répertoire de travail, représenté par le code dans votre éditeur de code, et votre index, représentant les versions des fichiers d'un commit particulier, le plus souvent le dernier commit..
Vous pouvez maintenant exécuter le git ajouter
commande pour mettre ces modifications du répertoire de travail dans l'index où vous avez mis en scène les fichiers. statut git
affichera ensuite les fichiers ajoutés à l’index en vert. Cela signifie que vos modifications sont prêtes à être intégrées dans un nouveau commit, que HEAD peut pointer et sur lesquelles s'appuyer..
Une liste verte de fichiers signifie simplement que les versions des fichiers intermédiaires de l'index sont différentes de celles des fichiers déjà validés. Quand tu cours git commit
, ces fichiers intermédiaires seront placés dans un nouvel objet commit. le git commit
La commande enregistre les noms de fichiers réels, le contenu de chaque fichier, les informations sur l'auteur, les métadonnées, etc. dans un nouvel objet..
Cet objet commit, qui vit maintenant dans un .git
dans votre référentiel, sera la nouvelle référence pointée par HEAD. Il rappelle les engagements précédents, constituant en quelque sorte la pointe de l'iceberg. Après avoir créé notre objet commit, nous sommes de retour au début du cycle..
Le commit que HEAD pointe dans le référentiel correspond à nouveau aux versions de l'index et du répertoire de travail, ce qui est prêt pour que les nouvelles modifications soient stockées et validées. Fin de l'histoire.
Si vous avez trouvé cela utile, pourquoi ne pas consulter d'autres cours Git??
Vous pouvez regarder notre introduction à Git et GitHub ou essayer les autres cours de pause-café de cette série: