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 master
branche. 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 master
branche 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 master
branche 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-auth
ou refactor-signup-ux
peuvent être créées à partir de la master
branche.

Comment cloner des branches Git
Bien que vous puissiez cloner des référentiels avec la git clone
commande, gardez à l'esprit que cela clone la branche et la télécommande HEAD
. Ceci est généralement master
par défaut et inclut toutes les autres branches du référentiel.
Ainsi, lorsque vous clonez un référentiel, vous clonez la master
et 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-auth
branche.
Vous n'avez vraiment pas besoin de la master
branche puisque votre "branche de fonctionnalité" sera fusionnée par la master
suite. Alors, comment cloner cette passwordless-auth
branche 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/api
est 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 master
branche contient le fichier pages / api / hello.js en passwordless-auth
contient le fichier pages / api / auth.js . Chaque fichier renvoie simplement une réponse textuelle factice. Voir master
la 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 master
sur votre machine, remotes/origin/master
la master
branche d' origine est sur Internet et se master
trouve 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 push
et 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-auth
tant 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-branch
option 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-auth
tant que branche locale et ne suit que cette branche.


Si vous exécutez, cd pages/api
vous trouverez le auth.js
fichier dans la passwordless-auth
branche 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? ✌?