Table des matières
Aperçu de la structure sous-jacente de Git
La méthode de stockage de fichiers sous-jacente de Git
Maison outils de développement git Le flux de traitement sous-jacent de git

Le flux de traitement sous-jacent de git

May 20, 2023 am 09:11 AM

La popularité des plateformes d'hébergement de code telles que GitHub et GitLab a fait de Git un outil de contrôle de version qui a attiré beaucoup d'attention, et de plus en plus de personnes ont compris comment fonctionne Git. Cependant, comprendre l'apparence de Git consiste uniquement à utiliser Git. Pour vraiment comprendre Git, vous devez également comprendre le flux de traitement sous-jacent de Git.

Aperçu de la structure sous-jacente de Git

Git est un système de contrôle de version distribué, auquel correspond un système de contrôle de version centralisé (tel que SVN), car Git est distribué Fonctionnalités, chaque référentiel Git est un référentiel complet.

Le répertoire de travail de Git contient deux parties : l'objet d'entrepôt Git et l'arborescence de travail. Le statut de l'objet d'entrepôt Git et de l'arborescence de travail peut être analogue à la relation entre les alias, les liens physiques et les liens symboliques respectivement.

La méthode de stockage de fichiers sous-jacente de Git

La technologie de stockage de fichiers sous-jacente de Git est principalement divisée en deux aspects :

  1. Stockage d'objets#🎜 🎜 #
  2. Utilisation du format de fichier compressible
Stockage d'objets

Git enregistre toutes les modifications de code en tant qu'objets, parmi lesquels la clé Les objets sont blob, tree et s'engager. Parmi eux, blob est un instantané du contenu du code, tree est un instantané d'un ensemble de fichiers et de répertoires et commit est un instantané des modifications du code.

Les lecteurs attentifs constateront que ces objets sont quelque peu similaires au mécanisme d'inode dans les systèmes Linux. Un nœud de fichier inode peut représenter un fichier ou un répertoire, et un nœud de fichier inode contient des informations telles que le numéro de bloc de disque. . Dans Git, blob est l'objet instantané du contenu du fichier dans le nœud de fichier inode, tree est l'objet instantané du répertoire inode et commit est l'instantané de version composé de plusieurs nœuds de fichier inode.

Dans Git, les objets sont généralement représentés sous forme de hachages SHA1. La valeur de hachage SHA1 est une chaîne hexadécimale de 40 caractères. Git utilise les hachages SHA1 pour attribuer un identifiant unique à chaque version, chaque fichier et répertoire et chaque validation.

Utilisation du format de fichier compressible

La couche inférieure de Git utilise une technologie qui ajoute une partie des métadonnées au fichier pour gérer les modifications de code. Les métadonnées sont souvent un état intermédiaire, comme une modification d'informations entre deux commits. Ces informations peuvent être compressées dans de petits fichiers et décompressées si nécessaire.

Le format de fichier par défaut utilisé par Git est le format packfile. Packfile est un format de stockage d'objets Git hautement compressé qui peut archiver plusieurs objets dans un seul fichier pour les transférer lorsque Git effectue des opérations inter-réseaux.

Le processus de traitement de base sous-jacent de Git

Dans le contenu précédent, nous avons découvert en détail les objets Git et la technologie de stockage de fichiers sous-jacente, et nous entrerons ensuite dans le traitement de base sous-jacent de Git processus.

Processus d'initialisation de Git

    Create directory.git/
  1. Create subdirectory.git/objects/
  2. # 🎜🎜 #Créer un sous-répertoire.git/refs/
  3. Créer un fichier HEAD vide
  4. Créer un fichier d'index vide
  5. #🎜🎜 #Fichier de base de Git commands
Voici une brève introduction aux différentes commandes de fichiers de base de Git :

hash-object commande : utilisée pour transférer des fichiers dans un objet Git.

    commande cat-file : utilisée pour afficher le contenu des objets Git.
  1. commande ls-tree : utilisée pour afficher le contenu d'une certaine arborescence Git.
  2. commande update-index : utilisée pour ajouter des fichiers ou des répertoires à l'index Git.
  3. commande write-tree : utilisée pour convertir l'index Git en un objet arborescence Git.
  4. Le processus de soumission de Git
Le processus de soumission de Git est toujours composé de trois champs : Blob, Tree et Commit.

Blob : utilisé pour représenter les métadonnées de chaque fichier dans le code, y compris le nom du fichier, le type de fichier et bien sûr la valeur de hachage SHA1, etc.

    Tree : Sur la base du Blob de l'étape précédente, assemblez les fichiers et répertoires correspondants pour former une arborescence d'instantanés et enregistrez-la dans un nœud Git.
  1. Commit : Assemblez les deux objets ci-dessus ainsi que les informations utilisateur soumises pour former un instantané de version.
  2. Dans les étapes ci-dessus, certaines choses nécessitent une attention particulière. Par exemple, lors de la conversion Blob, vous devez ajouter le paramètre -g.
Le processus de branchement de Git

Dans Git, les branches sont des pointeurs indépendants pointant vers le dernier objet soumis. Il existe deux types de succursales : les succursales locales et les succursales distantes.

Une fois la branche locale créée, l'ajout d'une nouvelle soumission déplacera automatiquement HEAD pour pointer vers la dernière soumission. Pendant cette période, la commande checkout est utilisée pour basculer entre les différentes branches. Les branches distantes font référence à un moyen de collaborer du code entre différentes bibliothèques locales.

Summary

Cet article développe le processus de traitement sous-jacent de Git sous deux aspects : la méthode de stockage de fichiers sous-jacente de Git et le processus de traitement de base sous-jacent de Git. Grâce à l'explication des objets Git et de la technologie de stockage de fichiers sous-jacente, nous comprenons l'architecture sous-jacente de Git. Cet article présente également le processus de traitement de base sous-jacent de Git, y compris le processus d'initialisation de Git, les commandes de fichiers de base de Git, le processus de soumission de Git et le processus de branchement de Git. Grâce à une compréhension approfondie du flux de traitement sous-jacent de Git, nous pouvons mieux comprendre le mécanisme de fonctionnement de Git et utiliser Git pour le contrôle de version plus efficacement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Git vs GitHub: contrôle de version et hébergement de code Git vs GitHub: contrôle de version et hébergement de code Apr 11, 2025 am 11:33 AM

Git est un système de contrôle de version et GitHub est une plate-forme d'hébergement de code basée sur GIT. Git est utilisé pour gérer les versions de code et prend en charge les opérations locales; GitHub fournit des outils de collaboration en ligne tels que le suivi des problèmes et PullRequest.

Git est-il le même que Github? Git est-il le même que Github? Apr 08, 2025 am 12:13 AM

Git et Github ne sont pas la même chose. Git est un système de contrôle de version et GitHub est une plate-forme d'hébergement de code basée sur GIT. Git est utilisé pour gérer les versions de code et GitHub fournit un environnement de collaboration en ligne.

Github est-il difficile à apprendre? Github est-il difficile à apprendre? Apr 02, 2025 pm 02:45 PM

Github n'est pas difficile à apprendre. 1) Maître les connaissances de base: GitHub est un système de contrôle de version basé sur GIT qui aide à suivre les changements de code et le développement collaboratif. 2) Comprendre les fonctions principales: les enregistrements de contrôle de version chaque soumission, prenant en charge le travail local et la synchronisation à distance. 3) Apprenez à utiliser: de la création d'un référentiel pour pousser les validations, à l'utilisation des branches et des demandes de traction. 4) Résoudre des problèmes communs: tels que la fusion des conflits et oublier d'ajouter des fichiers. 5) Pratique d'optimisation: utilisez des messages de soumission significatifs, nettoyez les succursales et gérez les tâches à l'aide de la carte de projet. Grâce à la pratique et à la communication communautaire, la courbe d'apprentissage de Github n'est pas raide.

Dois-je mettre Git ou Github sur mon CV? Dois-je mettre Git ou Github sur mon CV? Apr 04, 2025 am 12:04 AM

Sur votre CV, vous devez choisir d'écrire Git ou GitHub en fonction de vos exigences de position et de votre expérience personnelle. 1. Si le poste nécessite des compétences GIT, mettez en surbrillance Git. 2. Si le poste valorise la participation de la communauté, montrez Github. 3. Assurez-vous de décrire l'expérience d'utilisation et les cas de projet en détail et terminer avec une phrase complète.

Comment mettre à jour le code dans GIT Comment mettre à jour le code dans GIT Apr 17, 2025 pm 04:45 PM

Étapes pour mettre à jour le code GIT: Consultez le code: Git Clone https://github.com/username/repo.git Obtenez les derniers modifications: Git Fetch Merge Modifications: Git Merge Origin / Master Push Changes (Facultatif): Git Push Origin Master

Microsoft possède-t-il Git ou Github? Microsoft possède-t-il Git ou Github? Apr 05, 2025 am 12:20 AM

Microsoft ne possède pas GIT, mais possède GitHub. 1.Git est un système de contrôle de version distribué créé par Linus Torvaz en 2005. 2. GitHub est une plate-forme d'hébergement de code en ligne basée sur GIT. Il a été fondé en 2008 et acquis par Microsoft en 2018.

Que faire si le téléchargement git n'est pas actif Que faire si le téléchargement git n'est pas actif Apr 17, 2025 pm 04:54 PM

Résolve: lorsque la vitesse de téléchargement GIT est lente, vous pouvez prendre les étapes suivantes: Vérifiez la connexion réseau et essayez de changer la méthode de connexion. Optimiser la configuration GIT: augmenter la taille du tampon post (Git Config - Global Http.PostBuffer 524288000) et réduire la limite à basse vitesse (Git Config - Global Http.LowspeedLimit 1000). Utilisez un proxy GIT (comme Git-Proxy ou Git-LFS-Proxy). Essayez d'utiliser un client GIT différent (comme SourceTree ou GitHub Desktop). Vérifiez la protection contre les incendies

Comment utiliser Git Commit Comment utiliser Git Commit Apr 17, 2025 pm 03:57 PM

Git Commit est une commande qui enregistre le fichier qui passe à un référentiel GIT pour enregistrer un instantané de l'état actuel du projet. Comment l'utiliser est comme suit: Ajoutez des modifications à la zone de stockage temporaire Écrivez un message de soumission concis et informatif pour enregistrer et quitter le message de soumission pour compléter la soumission éventuellement: Ajoutez une signature pour le journal GIT Utilisez le contenu de soumission pour afficher le contenu de soumission

See all articles