17 points par GN⁺ 2023-10-08 | 1 commentaires | Partager sur WhatsApp
  • Explication détaillée du répertoire .git créé lors de git init
  • Le répertoire .git contient plusieurs fichiers et dossiers comme config, HEAD, hooks, objects, refs, etc.
    • Le fichier texte config contient la configuration Git du dépôt courant, ainsi que des réglages de base comme l’auteur et le mode des fichiers
    • Le fichier HEAD contient la tête actuelle du dépôt, qui pointe vers la branche par défaut. Selon le nom choisi pour la branche par défaut, il peut s’agir de master, main, etc.
    • Le répertoire hooks contient tous les scripts pouvant être exécutés avant ou après les opérations Git
    • Le répertoire objects contient les données relatives aux fichiers et aux commits du dépôt
    • Le répertoire refs stocke les références ou pointeurs vers les branches et les tags
  • Lorsqu’un fichier est ajouté au dépôt, le fichier index est modifié et de nouveaux dossiers et fichiers sont ajoutés dans le répertoire objects
  • Les nouveaux fichiers du répertoire objects contiennent le type, la taille et les données du fichier ajouté, et leur nom est dérivé du sha1 du contenu
  • Lorsqu’un fichier est commit, plusieurs changements se produisent, comme la création d’un nouveau fichier appelé COMMIT_EDITMSG contenant le message de commit et l’ajout d’un nouvel objet dans le répertoire objects
  • Dans Git, la création d’une branche est un processus simple qui consiste à ajouter un nouveau fichier dans le répertoire refs/heads, avec le nom de la branche et l’ID du commit le plus récent
  • Le checkout d’une branche consiste à mettre à jour le fichier .git/HEAD pour qu’il pointe vers la branche checkoutée
  • La fusion de branches peut être effectuée de trois façons : fast forward merge, rebase merge, ou création d’un merge commit distinct
  • Lorsqu’un dépôt est poussé, tout le contenu du répertoire objects ainsi que toutes les branches et tous les tags sous les refs explicitement poussés sont transmis à un autre dépôt Git

1 commentaires

 
[Ce commentaire a été masqué.]