Git Clone Branch - Comment cloner une branche spécifique

Contrairement aux anciens systèmes de contrôle de version centralisés tels que SVN et CVS, Git est distribué. Chaque développeur a l'historique complet et le contrôle de son code localement ou à distance. Ils peuvent également accéder ou manipuler plusieurs parties du code à leur guise à partir d'emplacements différents.

Depuis que Linus Torvalds (le célèbre créateur du noyau du système d'exploitation Linux) a créé Git en 2005 pour le développement du noyau Linux, il est devenu le système de contrôle de version moderne le plus largement utilisé au monde.

Dans cet article, je vais vous présenter les workflows de clonage de Git et de branche Git et je vais vous montrer comment vous pouvez cloner une branche spécifique en fonction de vos besoins. Commençons! ?

Conditions préalables

  • Connaissance de base du terminal
  • Possibilité de saisir des commandes dans le terminal
  • Git installé (je vais toujours vous montrer comment)
  • Un compte GitHub
  • Un sourire sur ton visage (Mettre ce sourire ami?)

Introduction rapide à Git et GitHub

Selon Wikipedia,

Git est un système de contrôle de version distribué conçu pour suivre les modifications d'un projet (code) en développement logiciel. Il vise à renforcer la coordination, la collaboration, la rapidité et l'efficacité entre les développeurs.

GitHub, d'autre part, est un service d'hébergement Web pour le contrôle de version à l'aide de Git. Il offre toutes les fonctionnalités de contrôle de version distribué et de gestion du code source de Git, ainsi que l'ajout de fonctionnalités supplémentaires pour le code informatique.

Comment installer Git sur Windows

Téléchargez et installez la dernière version de Git pour Windows Installer ici.

Comment installer Git sur Linux

Voici les commandes basées sur votre distribution Linux:

Debian ou Ubuntu

sudo apt-get update sudo apt-get install git

Feutre

sudo dnf install git

CentOS

sudo yum install git

Arch Linux

sudo pacman -Sy git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

Comment installer Git sur un Mac

Téléchargez et installez le dernier programme d'installation de Git pour Mac ici.

Ou vous pouvez taper cette commande:

brew install git

Maintenant que Git est installé, passons au tutoriel.

Introduction à Git Clone

Git vous permet de gérer et de versionner votre (vos) projet (s) dans un "référentiel". Ce référentiel est stocké sur un service d'hébergement Web pour le contrôle de version, comme GitHub.

Vous pouvez ensuite cloner ce dépôt sur votre machine locale et avoir tous les fichiers et branches localement (j'expliquerai plus en détail les branches bientôt).

Par exemple, vous pouvez cloner le référentiel de freeCodeCamp avec SSH comme ceci:

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Introduction aux branches Git

Lorsque vous travaillez sur un projet, vous aurez probablement des fonctionnalités différentes. Et plusieurs contributeurs travailleront sur ce projet et ses fonctionnalités.

Les branches vous permettent de créer un "terrain de jeu" avec les mêmes fichiers dans la masterbranche. Vous pouvez utiliser cette branche pour créer des fonctionnalités indépendantes, tester de nouvelles fonctionnalités, apporter des modifications majeures, créer des correctifs, rédiger des documents ou essayer des idées sans interrompre ni affecter le code de production. Lorsque vous avez terminé, vous fusionnez la branche dans la masterbranche de production .

Le branchement est un concept de base dans Git qui est également utilisé dans GitHub pour gérer les flux de travail de différentes versions d'un projet. La masterbranche est toujours la branche par défaut dans un référentiel qui est le plus souvent considéré comme "code de production et déployable". De nouvelles branches aiment passwordless-authou refactor-signup-uxpeuvent être créées à partir de la masterbranche.

Comment cloner des branches Git

Bien que vous puissiez cloner des référentiels avec la git clonecommande, gardez à l'esprit que cela clone la branche et la télécommande HEAD. Ceci est généralement masterpar défaut et inclut toutes les autres branches du référentiel.

Ainsi, lorsque vous clonez un référentiel, vous clonez la masteret toutes les autres branches. Cela signifie que vous devrez acheter vous-même une autre succursale.

Supposons que votre tâche sur un projet consiste à travailler sur une fonctionnalité pour ajouter une authentification sans mot de passe à un tableau de bord utilisateur. Et cette fonctionnalité est dans la passwordless-authbranche.

Vous n'avez vraiment pas besoin de la masterbranche puisque votre "branche de fonctionnalité" sera fusionnée par la mastersuite. Alors, comment cloner cette passwordless-authbranche sans récupérer toutes les autres branches avec "un tas de fichiers dont vous n'avez pas besoin"?

J'ai créé cet exemple de référentiel pour expliquer cela. Ce référentiel contient un blog simple construit avec Nextjs et a quatre branches factices:

  • Maître
  • dev
  • mise en scène
  • auth sans mot de passe

Dans Nextjs, tout fichier à l'intérieur du dossier pages/apiest mappé sur le /api/*chemin et sera traité comme un point de terminaison API au lieu d'un page. Dans notre référentiel, j'ai créé différentes API factices dans ce répertoire pour rendre chaque branche différente.

La masterbranche contient le fichier pages / api / hello.js en passwordless-authcontient le fichier pages / api / auth.js . Chaque fichier renvoie simplement une réponse textuelle factice. Voir masterla réponse de l 'API Hello ici (avec un message spécial pour vous?).

Clonons le référentiel:

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

Cela nous donne accès à toutes les branches de ce référentiel et vous pouvez facilement basculer entre chacune pour voir chaque version et ses fichiers.

git branch -a

Vous vous demandez d'où viennent les télécommandes / origine / .. branches?

Lorsque vous clonez un référentiel, vous extrayez des données d'un référentiel sur Internet ou d'un serveur interne appelé le distant . Le mot origine est un alias créé par votre Git pour remplacer l'URL distante (vous pouvez modifier ou spécifier un autre alias si vous le souhaitez).

Ces branches remote / origin / .. vous redirigent vers le référentiel d'origine que vous avez cloné depuis Internet afin que vous puissiez toujours effectuer un pull / push depuis l'origine.

Ainsi, lorsque vous clonez mastersur votre machine, remotes/origin/masterla masterbranche d' origine est sur Internet et se mastertrouve sur votre machine locale. Ainsi vous tirerez / pousserez de et vers le remotes/origin/master.

En résumé, Remote est l'URL qui vous dirige vers le référentiel sur Internet, tandis que Origin est un alias pour cette URL distante.

Comment cloner une branche spécifique

Clonons maintenant une branche spécifique de notre dépôt de démonstration. Il existe deux façons de cloner une branche spécifique. Tu peux soit:

  • Clonez le référentiel, récupérez toutes les branches et effectuez immédiatement l'extraction vers une branche spécifique.
  • Clonez le référentiel et récupérez une seule branche.

Option un

git clone --branch  

ou

git clone -b  

Avec cela, vous récupérez toutes les branches du référentiel, vous récupérez celle que vous avez spécifiée et la branche spécifique devient la branche locale configurée pour git pushet git pull. Mais vous avez toujours récupéré tous les fichiers de chaque branche. Ce n'est peut-être pas ce que vous voulez, non? ?

Testons-le:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Cela se configure automatiquement en passwordless-authtant que branche locale mais suit toujours les autres branches.

Option deux

git clone --branch  --single-branch 

ou

git clone -b  --single-branch 

Cela effectue la même action que l'option 1, sauf que l' --single-branchoption a été introduite dans Git version 1.7.10 et ultérieure. Il vous permet de récupérer uniquement les fichiers de la branche spécifiée sans récupérer les autres branches.

Testons-le:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Cela se configure automatiquement en passwordless-authtant que branche locale et ne suit que cette branche.

Si vous exécutez, cd pages/apivous trouverez le auth.jsfichier dans la passwordless-authbranche comme prévu dans la configuration précédente.

Conclusion

Vous manquez peut-être d'Internet ou d'espace de stockage, mais vous devez travailler sur une tâche dans une branche spécifique. Ou vous pourriez vouloir cloner une branche spécifique avec des fichiers limités pour diverses raisons. Heureusement, Git vous offre la flexibilité de le faire. Flex vos muscles et essayez-le, il y a beaucoup plus de "Git" à apprendre.

Un à la fois, oui? ✌?