Nous vivons dans un monde où la collaboration prévaut sur tout, en particulier dans le contexte du codage. Que vous soyez débutant, que vous écriviez des codes assez complexes ou que vous travailliez avec une équipe, il est fort probable que vous utilisiez l’un des outils les plus utilisés pour le codage collaboratif, GitHub.
GitHub, avec plus de 100 millions de dépôts, est sans aucun doute la plateforme d’hébergement de code la plus importante au monde. La première chose à comprendre lorsque l’on travaille avec Git est sa gestion des fichiers et des dossiers au sein du dépôt. Outre la structure hiérarchique arborescente des fichiers, GitHub offre des fonctionnalités exceptionnelles qui permettent de profiter du meilleur de Git dans votre navigateur. Parmi ces fonctionnalités, citons le branchement, le forking, le clonage, etc.
Nous examinons les deux mécanismes de Git pour mieux comprendre comment ils s’intègrent dans l’ensemble de l’histoire.
Qu’est-ce que Fork ?
Vous utilisez GitHub depuis un certain temps ? De temps en temps, il arrive que vous souhaitiez travailler sur le projet de quelqu’un d’autre ou contribuer à quelque chose. Il peut arriver que vous souhaitiez travailler sur des projets dont vous n’êtes pas le propriétaire ou le collaborateur. Dans de telles situations où vous n’avez pas d’accès push à un projet existant, vous avez la possibilité de forker le dépôt.
Qu’est-ce qu’un fork ? Un fork n’est rien d’autre qu’une copie du dépôt et vous pouvez travailler sur le projet de quelqu’un d’autre librement sans affecter le projet. Ainsi, forker signifie créer une copie du dépôt sur votre compte GitHub sans avoir à ajouter des utilisateurs en tant que collaborateurs pour leur permettre d’accéder au dépôt. Vous pouvez forker un projet, l’enrichir et renvoyer les modifications au dépôt d’origine via ce que l’on appelle une Pull Request (demande d’extraction).
Qu’est-ce qu’une branche ?
Une branche dans Git est comme une branche d’un arbre. Une branche est une partie importante de Git et probablement l’une des meilleures fonctionnalités de Git. Lorsque vous créez un nouveau dépôt, vous créez en fait une branche maîtresse et lorsque vous faites des commits, vous ne faites des commits que sur cette branche maîtresse. Cette branche principale représente généralement une version stable de votre code et c’est ce code qui sera diffusé ou publié.
C’est la raison pour laquelle vous ne voulez probablement pas essayer de nouvelles fonctionnalités ou un nouveau code sur cette branche principale. Donc, si vous voulez ajouter une nouvelle fonctionnalité à votre application, vous devez créer une sorte d’environnement isolé pour tester les nouvelles fonctionnalités et si cela fonctionne, vous pouvez aller de l’avant et les fusionner dans la branche master.
Il s’agit d’une fonction de Git qui fait essentiellement une copie du code, vous permettant d’effectuer des modifications sur une copie particulière et ensuite de fusionner les modifications vers la branche principale.
Différence entre fourche et branche
Quelle est la signification de Fourche et Branche ?
– Le branchement est probablement l’une des fonctionnalités fondamentales disponibles dans la plupart des systèmes de contrôle de version modernes. Une branche dans Git est un environnement isolé permettant d’ajouter, de modifier ou de supprimer une partie du code sans toucher au code principal du projet.
La création d’une branche consiste à créer une autre ligne de développement dans le projet sans affecter la branche principale ou le dépôt. Le forkage, quant à lui, consiste à créer un clone du dépôt sur votre compte GitHub sans affecter le dépôt principal.
Un fork n’est rien d’autre qu’une copie du projet de quelqu’un d’autre, alors qu’une branche n’est qu’une version d’un dépôt.
Quelle est la fonction d’un Fork par rapport à une Branch ?
– Le Forking est fonctionnellement similaire au Branching dans d’autres systèmes de contrôle de version, mais dans Git, le Branching est une fonctionnalité entièrement différente qui est basée sur une analogie similaire impliquant des arbres. En soi, il n’y a pas de différence fondamentale entre les deux, sauf que le branchement est typiquement une opération de clonage dans Git exécutée sur un seul dépôt.
La bifurcation, en revanche, est une opération de clonage dans Git qui est exécutée sur l’ensemble du référentiel. La bifurcation crée une copie complète du référentiel original sans affecter le référentiel principal et la copie reste dans votre compte alors que la bifurcation crée une branche pour encapsuler vos changements.
Que penser de l’objectif de Fork vs Branch ?
– Lorsque vous souhaitez travailler ou contribuer au projet de quelqu’un d’autre, vous créez une copie personnelle du dépôt qui agit comme un pont entre le dépôt principal et la copie.
Cette copie personnelle est ce que nous appelons une fourche. L’objectif du fork dans Git est donc d’améliorer le projet de quelqu’un d’autre en ajoutant de nouvelles caractéristiques ou fonctionnalités au dépôt existant. Les branches Git, quant à elles, agissent comme des pointeurs vers les instantanés des modifications.
Ainsi, lorsque vous souhaitez apporter des modifications au code, vous vous éloignez de la base de code originale en créant une branche afin de pouvoir travailler librement sans affecter le travail des autres développeurs de l’équipe.
Résumé de Fork vs. Branch
En résumé, chaque fois que vous faites une copie d’un dépôt, vous créez une fourche et l’ensemble de l’action est considéré comme une fourche du projet.
Si vous souhaitez modifier ou ajouter du code à un projet, qu’il s’agisse de votre propre projet ou d’un grand projet open-source, vous allez probablement créer une branche, qui stockera spécifiquement tout le code.
La création de branches est une opération de Git qui consiste essentiellement à faire une copie d’un code, chaque branche représentant une copie du code. De cette façon, vous pouvez modifier votre copie personnelle et, si elle fonctionne, fusionner vos modifications avec la branche principale. Ainsi, d’un point de vue fonctionnel, le forking et le branching sont assez similaires, mais avec des intentions différentes.