GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Qu'est-ce que Git ?

Présentation

Git est le système de contrôle de version le plus populaire (VCS ) dans le monde. Il enregistre les modifications apportées à votre code dans un référentiel et vous permet de revenir à un état antérieur en cas d'erreur ou de bug.

Dans cet article, vous apprendrez ce qu'est Git, ses fonctionnalités les plus importantes et à quoi il sert.

Qu'est-ce que Git ?

Git est un VCS gratuit et open source utilisé pour le suivi des modifications du code source . Il permet à plusieurs développeurs de travailler ensemble sur le développement non linéaire . Git est gratuit, open source, rapide et évolutif, ce qui en fait le VCS le plus populaire au monde.

Il existe deux types de systèmes de contrôle de version :

  • Centralisé . Tous les membres de l'équipe se connectent à un serveur central pour obtenir la dernière copie de code et partager leur contribution avec d'autres.
  • Distribué . Dans un VCS distribué, chaque membre de l'équipe dispose d'une copie du projet et de son historique sur sa machine, ce qui lui permet d'enregistrer localement des instantanés du projet.

Le problème avec un VCS centralisé est le point de défaillance unique. Si le serveur tombe en panne, les membres de l'équipe ne peuvent pas collaborer ou enregistrer des instantanés de leur projet.

Git est un VCS distribué qui résout le point de défaillance unique problème car il permet aux membres de synchroniser leur travail même si le serveur central est hors ligne.

Le schéma suivant montre comment plusieurs personnes collaborent dans un même projet à l'aide de Git :

À quoi sert Git ?

L'utilisation principale de Git est la gestion du code source dans le développement de logiciels, mais il peut suivre les modifications de n'importe quel ensemble de fichiers. L'historique du projet stocké dans Git indique qui a apporté des modifications, ce qui a été fait, quand et pourquoi.

En tant que VCS distribué, Git permet à chaque membre de l'équipe d'avoir une copie du projet et de son historique sur leur machine, leur permettant de sauvegarder des instantanés du projet localement .

Il permet également aux développeurs de travailler avec plusieurs référentiels distants et collaborer avec d'autres personnes simultanément au sein d'un même projet. Par conséquent, les utilisateurs peuvent configurer plusieurs types de flux de travail qui ne sont pas possibles dans un système centralisé , par exemple, un modèle hiérarchique.

Caractéristiques

Plusieurs fonctionnalités placent Git devant les autres systèmes de contrôle de version.

Performances

La performance est l'atout de Git lorsqu'on le compare à d'autres systèmes de contrôle de version. La validation des modifications, la création de branches, la fusion et la comparaison des versions précédentes sont toutes des opérations très performantes dans Git.

Algorithmes avancés et une architecture distribuée sont la base des hautes performances de Git. Les algorithmes utilisent une connaissance approfondie des attributs communs des arbres de fichiers de code source réels, de leurs modifications au fil du temps et de leurs modèles d'accès.

Git ne s'appuie pas sur les noms de fichiers pour déterminer le type de stockage et l'historique des versions de l'arborescence des fichiers, car les fichiers de code source sont fréquemment renommés, divisés ou réorganisés. Au lieu de cela, Git se concentre sur le contenu du fichier .

Le format d'objet du référentiel Git utilise l'encodage delta (stockage des différences de contenu) et compression , stockant explicitement le contenu du répertoire et les objets de métadonnées de version.

Compatibilité

Git est compatible avec tous les systèmes d'exploitation disponibles, ainsi qu'avec d'autres dépôts distants VCS , auquel il peut accéder directement.

Sa capacité à accéder à d'autres référentiels VCS signifie que les utilisateurs peuvent facilement passer à l'utilisation de Git sans déplacer leurs fichiers de ces référentiels vers le référentiel Git.

Branchement

Les branches dans Git sont des lignes de développement parallèles aux principaux fichiers du projet. En utilisant des branches, les développeurs peuvent apporter des modifications au projet sans affecter la version d'origine .

La version d'origine reste sur la branche principale et peut ensuite fusionner avec de nouvelles fonctionnalités après les avoir testées sur d'autres branches.

La création de branches et la fusion sont des processus simples dans Git, contrairement à d'autres VCS où ils peuvent être complexes et lents.

Sécurité

La sécurité et l'intégrité du code sont une priorité lors de la validation des modifications dans Git. Ce VCS stocke les enregistrements de tous les commits fait par chaque coéquipier sur la copie locale du développeur.

Lorsque quelqu'un effectue une opération push, Git crée un fichier journal et l'envoie au référentiel central. Ainsi, si un problème survient, il peut être facilement suivi et résolu.

L'algorithme de chiffrement SHA1 est une autre excellente fonctionnalité de sécurité. , utilisé pour sécuriser et identifier tous les objets du référentiel. L'algorithme protège le code et l'historique des modifications contre les modifications accidentelles ou intentionnelles tout en garantissant un historique entièrement traçable.

Vitesse

La récupération de données à partir d'un référentiel local est environ 100 fois plus rapide que la récupération à partir d'un référentiel distant. Git stocke toutes les données du projet dans le référentiel local , ce qui se traduit par des vitesses incroyables lors de la récupération des données.

Git est également hautement évolutif et plus rapide que les autres systèmes de contrôle de version, ce qui lui permet de gérer efficacement de grands projets.

Flexibilité

Une autre grande caractéristique de Git est sa flexibilité globale.

Les utilisateurs peuvent facilement suivre les modifications car les développeurs peuvent laisser un message de validation après avoir apporté des modifications. Un message de validation permet à un autre développeur de continuer à travailler là où le précédent s'est arrêté.

Git inclut également des fonctionnalités telles que la sauvegarde et la restauration, qui aident les utilisateurs à maintenir la sauvegarde du code source. De plus, une seule commande suffit pour déployer le code source sur le serveur.

Utilisation généralisée

Puisqu'il possède presque tout ce dont les développeurs ont besoin pour les résultats de travail les plus efficaces, Git est devenu le système de contrôle de version le plus répandu. En raison de sa prévalence sur le marché, de nombreux outils et services sont optimisés spécifiquement pour Git.

Bien que de nombreux tutoriels, sites Web dédiés et livres traitent de Git, il est souvent critiqué pour sa difficulté à apprendre. Pourtant, Git est devenu une compétence obligatoire pour la plupart des développeurs, représentant la base pour l'utilisation d'autres VCS.

Une autre raison pour laquelle Git est si répandu est qu'il est open-source , ce qui signifie que son utilisation est entièrement gratuite.

Comment fonctionne Git ?

La façon dont il gère les données est ce qui différencie Git des autres systèmes de contrôle de version.

Alors que d'autres VCS stockent les informations sous la forme d'une liste de modifications basées sur des fichiers , Git stocke ses données dans une série d'instantanés d'un système de fichiers miniature. Chaque fois que vous validez une modification ou enregistrez l'état de votre projet, Git prend un instantané de tous vos fichiers à ce moment et stocke une référence à cet instantané.

S'il n'y a pas eu de modification de fichier, par souci d'efficacité, Git ne stocke plus le fichier. Au lieu de cela, il crée uniquement un lien vers la version précédente du fichier, qui est déjà stockée.

Un projet Git se compose de trois sections :

  • L'annuaire de travail . L'extraction unique d'une version du projet.
  • La zone de transit . Un index qui stocke des informations sur ce que contiendra le prochain commit.
  • Le référentiel Git . L'endroit où Git stocke les métadonnées et la base de données d'objets d'un projet.

Le schéma suivant représente le workflow de base du projet Git :

Avant de stocker les données dans Git, tout est somme de contrôle puis fait référence à l'utilisation de cette somme de contrôle. Cela empêche toute modification de fichier ou corruption de données de passer sous le radar. Le mécanisme utilisé pour la somme de contrôle est le hachage SHA-1 .

Git stocke les fichiers dans trois états principaux :

  • Modifié. Un fichier a été modifié mais pas encore validé dans la base de données.
  • Mise en scène. Un fichier modifié dans sa version actuelle est marqué pour aller dans le prochain instantané de validation.
  • Engagé. Les données sont stockées en toute sécurité dans votre base de données locale.

Le VCS empêche également la perte de données car presque toutes les actions dans Git ne font que ajouter des données au référentiel, ce qui les rend essentiellement inversables .

Pourquoi Git est-il important ?

Un système de contrôle de version facilite le développement lorsqu'il y a de nombreux points sur la chronologie et permet aux utilisateurs de gérer leurs chemins de développement.

Sans VCS, les développeurs devraient constamment stocker des copies de projet dans divers dossiers, ce qui est lent et non évolutif, surtout si une équipe travaille sur le même projet. Aucun VCS signifierait également devoir échanger et fusionner les modifications de fichiers manuellement.


Ubuntu
  1. Qu'est-ce que le cloud bare metal

  2. Qu'est-ce que Git Upstream et comment configurer une branche en amont

  3. Qu'est-ce que le Web 3.0 ?

  4. Quelle est la différence entre Git Switch et Checkout ?

  5. Qu'est-ce que JingOS Linux ?

Qu'est-ce que Jenkins ?

Qu'est-ce que la pile LAMP ?

Qu'est-ce que l'hôte local 127.0.0.1 ?

Qu'est-ce que Git Bash ? Travailler avec les commandes Git Bash

Qu'est-ce que Git et comment installer Git sous Linux

Qu'est-ce que Localhost ?