Imaginons que vous écrivez un livre et que vous voulez expérimenter de nouvelles idées sans altérer l’original. Vous pourriez commencer un nouveau cahier pour chaque idée, en gardant vos brouillons séparés.
Git, un système de contrôle de version, permet aux développeurs logiciels de faire de même avec le code via des « branches ». Chaque branche est comme un chemin de développement distinct, vous permettant d’explorer des modifications sans affecter la base de code principale.
Dans cet article, je vais vous guider à travers l’utilisation de git clone
, en mettant l’accent sur le clonage de branches spécifiques. Si vous voulez en apprendre plus sur Git, je recommande ce cours d’Introduction à Git.
Commençons par une réponse courte pour ceux d’entre vous qui sont pressés. Ensuite, nous plongerons dans plus de détails.
Réponse courte : Comment cloner une branche spécifique
Pour cloner une branche spécifique d’un dépôt git, utilisez la commande :
git clone --single-branch --branch <branch_name> <repository_url>
Remplacez <branch_name>
par le nom de la branche souhaitée et <repository_url>
par l’URL du dépôt. Cette commande crée une copie locale de la branche spécifiée, permettant un développement immédiat et ciblé sur cette branche.
Exemple
Dans cet article, nous utiliserons ce dépôt. Vous pouvez l’utiliser pour essayer les commandes que vous apprenez sur votre machine. Le dépôt contient trois branches :
main
: Le branche par défaut avec deux fichiers de texte.add-new-file
: Une branche où un troisième fichier a été ajouté.modify-file
: Une branche où le deuxième fichier a été modifié.
C’est comme ça que nous pouvons cloner la branche add-new-file :
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Qu’est-ce que git clone
?
Par défaut, git clone
est conçu pour copier l’ensemble du dépôt dans un nouveau répertoire sur votre machine locale, en clonant toutes les branches. Voici la syntaxe :
git clone <repository_url>
Pour cloner le dépôt d’exemple, nous pouvons faire ce qui suit :
git clone https://github.com/fran-aubry/git-clone-example.git
Après avoir exécuté cette commande, toutes les branches seront copiées sur votre machine locale. Cependant, seule une branche de fichiers est visible à la fois, appelée la branche ouverte. Après le clonage d’un dépôt, la branche par défaut (normalement appelée main
ou master
) est celle qui est ouverte.
Changer de branches
Après une clonage complet, nous pouvons changer (se déplacer) vers la branche désirée en utilisant la commande git checkout. Par exemple, pour se déplacer vers la branche modify-file, nous ferions ce qui suit :
git checkout modify-file
Profondeur de clonage
Lorsque vous travaillez avec Git, les modifications apportées à un branche sont enregistrées en les commettant à l’aide de la commande git commit
. Chaque commit crée un nouvel état pour cette branche, que vous pourrez réverter ultérieurement si nécessaire. Envisagez chaque commit comme une prise de vue instantanée, avec Git enregistrant toutes ces prises de vue. Vous pouvez réverter une branche à l’une de ces prises de vue à tout moment.
La commande git clone
télécharge, sans options, chaque commit de chaque branche sur votre machine locale. Selon la taille du projet, cela pourrait occuper une place importante dans votre stockage local. Si vous savez que vous n’aurez pas besoin de l’historique complet, vous pouvez utiliser le paramètre --depth
pour indiquer combien de commits (ou instantanés) vous souhaitez cloner.
Pour cloner la branche principale tout en chargeant uniquement le commit le plus récent, utilisez la commande suivante :
git clone --depth=1 https://github.com/fran-aubry/git-clone-example.git
Clonage d’une branche spécifique
Nous avons appris comment cloner un dépôt en utilisant git clone. Par défaut, cette commande clone tout vers votre machine locale. souvent, vous serez peut-être uniquement intéressé à travailler sur une branche spécifique, donc il serait plus efficient de cloner seulement cette branche particulière. Cette méthode sauve de l’espace disque et vous permet de commencer à travailler immédiatement sans avoir besoin de basculer de branche après le clonage.
Dans l’analogie de l’écriture du livre, envisagez d’être assigné au travail de réécriture du second chapitre d’un livre. Dans ce cas, vous devriez cloner seulement la branche où ce travail est effectué, car il est inutile d’avoir accès aux branches liées à la révision d’autres chapitres.
Vous pouvez instructionner git pour cloner une seule branche en ajoutant les arguments --single-branch
et --branch
suivis du nom de la branche :
git clone --single-branch --branch <branch_name> <repository_url>
Faisons le démembrement de la commande :
git clone
: C’est la commande de base de git utilisée pour copier un dépôt d’une source distante sur votre machine locale.
--single-branch
: Cette option indique à Git de cloner uniquement une seule branche. Si aucune branche n’est spécifiée, la branche par défaut sera clonée.
--branch
: Cette option spécifie la branche à cloner. Le> est le nom de la branche que vous voulez cloner.
: C’est l’URL du dépôt.
Par exemple, pour cloner seulement la branche modify-file de notre dépôt, nous pouvons faire ce qui suit :
git clone --single-branch --branch add-new-file https://github.com/fran-aubry/git-clone-example.git
Comment travailler avec une branche clonée
Lorsque vous travaillez sur une branche, il existe trois opérations essentielles que vous devez effectuer :
- Enregistrez votre travail en créant un instantané de l’état actuel.
- Téléversez vos modifications afin que tout le monde puisse y accéder.
- Téléchargez les modifications d’autres personnes et fusionnez-les avec les vôtres.
Enregistrez vos modifications avec git commit
.
Dans Git, enregistrer son travail s’appelle créer un commit. Ce processus permet de prendre un instantané de l’état actuel de la branche sur laquelle vous travaillez.
L’état de la branche est enregistré sur l’ordinateur local après chaque commit, ce qui vous permet de naviguer entre différentes étapes de progression.
Pour commiter vos modifications dans git, vous utilisez la commande git commit
. Cependant, avant de commiter vos modifications, git a besoin de savoir quels fichiers vous souhaitez inclure dans le commit. Vous spécifiez les fichiers à sauvegarder en utilisant la commande git add
. La syntaxe de cette commande est la suivante :
git add <path_to_file>
Dans la syntaxe, <path_to_file>
est le chemin vers le fichier que vous voulez commiter. Par exemple, si nous sommes sur le branche modify-file
de notre répertoire d’exemple et avons ajouté un paragraphe à file2.txt
, vous ajouteriez ce fichier en exécutant :
git add file2.txt
Après avoir ajouté tous les fichiers que vous souhaitez inclure dans votre commit, vous pouvez procéder au commit en exécutant :
git commit -m <message>
Dans cet exemple, l’argument <message>
doit être un message court mis entre guillemets, brevement décrivant les modifications. Par exemple :
git commit -m "Add paragraph"
Voici quelques conventions pour le message de commit. Elles sont essentielles pour assurer la clarté et la compréhension entre tous les membres du projet :
- Utilisez le mode impératif :Commencez votre message de commit par un verbe au mode impératif (par exemple, « Ajouter, » « Corriger, » « Mettre à jour »). Par exemple, au lieu d’écrire « Nouvelle fonctionnalité ajoutée, » écrivez « Ajouter une nouvelle fonctionnalité. »
- Être court mais descriptif : Ciblez un message court, idéalement inférieur à 50 caractères. Cependant, privilégiez la clarté lors de la description des modifications. Au lieu de « Changements apportés », écrivez « Mise à jour du style de la barre de navigation. »
- Éviter les messages génériques : Évitez les messages vagues tels que « Corriger les bugs » ou « Améliorer ». Au lieu de cela, soyez spécifique : « Correction de l’anomalie de validation du formulaire de connexion » ou « Amélioration de la lisibilité de la documentation. »
Envoi de vos modifications avec git push
Lorsque vous commettez, vous créez une capture instantanée des modifications sur votre machine locale. Afin que d’autres puissent accéder à vos modifications, vous devez les téléverser. Pour ce faire, vous utilisez la commande push
.
La syntaxe de base de la commande push dans Git est :
git push <remote> <branch>
C’est le détail :
<référentiel>
: C’est le nom du référentiel distant vers lequel vous souhaitez envoyer vos modifications. Par défaut, lorsque vous clonez un référentiel, le référentiel distant s’appelle origin.<branche>
: C’est le nom de la branche dont vous souhaitez envoyer les modifications au référentiel distant. Si vous omettez cet argument, Git envoyera les modifications en fonction de la branche courante et des configurations de suivi distant.
Voici quelques cas d’utilisation courants pour git push
:
- Envoyer des modifications de la branche courante :
git push
- Pousser les modifications d’une branche spécifique :
git push origin <branch>
Télécharger les modifications avec git pull
Git permet à de grands équipes de travailler simultanément sur le même projet. Lorsque vos collègues éditent la même branche que vous, votre branche locale peut devenir plus ancienne que la branche distante.
Pour télécharger les commits d’autres personnes, nous utilisons la commande git pull
.
git pull <remote> <branch>
Voici ce que chaque paramètre fait :
<remote>
: C’est le nom du dépôt distant d’où vous souhaitez tirer. Par défaut, ce dépôt est nommé origin.<branch>
: C’est le nom de la branche d’où vous souhaitez tirer les modifications. Si non spécifié, git utilise la branche actuelle ainsi que sa branche ascendante.
Voici quelques cas d’utilisation courants de git pull
:
- Tirer les modifications de la branche actuelle :
git pull
- Tirer les modifications d’une branche spécifique :
git pull origin <branch>
Workflow de commit-pull-push
Lors de l’utilisation de Git, je recommande de récupérer régulièrement les mises à jour pour s’assurer que votre branche locale reste à jour. Je vous conseille de respecter les meilleures pratiques suivantes :
- Avant de commencer votre travail, récupérez les dernières mises à jour pour votre branche actuelle pour vous assurer que vous travaillez sur la version la plus récente.
- Commandez souvent, en vous assurant que chaque commit se concentre sur de petites modifications logiquement liées.
- Apres avoir fait quelques modifications et créé un commit, récupérez à nouveau pour mettre à jour votre branche, au cas où quelqu’un d’autre aurait fait des mises à jour en même temps.
- Enfin, envoyez vos modifications vers le dépôt distant.
Conflits Git
Lors de l’exécution de la commande git pull, pour télécharger les modifications depuis un dépôt distant, il est possible de rencontrer une situation où un autre commit a modifié les mêmes lignes que vos commits locaux. Git essaye de fusionner automatiquement les modifications et dans de nombreux cas, il réussit. Par exemple, si des modifications sont apportées à différentes parties du même fichier, Git peut fusionner celles-ci en toute simplicité car les commits affectent des sections distinctes.
Cependant, si vous et un autre contributeur avez édité le même paragraphe, git ne pourra pas déterminer quelle version conserver, ce qui entraînera un conflit de fusion. Dans ce cas, vous devrez résoudre manuellement le conflit en décidant quelles modifications conserver.
Pour de plus amples instructions sur la résolution de conflits, je vous recommande de lire cet article sur comment résoudre les conflits de fusion dans Git.
Téléchargement GitHub
Dans certains scénarios, vous souhaitez avoir une copie locale d’un dépôt pour l’utiliser sans l’intention de le modifier. Si c’est un dépôt public, il n’est pas nécessaire d’installer Git sur votre machine locale. Vous pouvez télécharger directement le dépôt de GitHub en cliquant sur le bouton Code suivi du bouton Télécharger le fichier Zip comme illustré ci-dessous:
Conclusion
Le clonage Git vous permet de copier un dépôt Git sur votre machine locale, ce qui vous permet d’utiliser le code ou de le développer en ajoutant de nouvelles fonctionnalités. Lors du clonage d’un dépôt, toutes les branches sont téléchargées, ce qui peut consommer une grande quantité d’espace disque.
Les développeurs utilisent les branches pour travailler sur des modifications ou des fonctionnalités spécifiques. Cloner une branche spécifique vous permet de contribuer à ces modifications sans télécharger de travaux non liés, ce qui nécessite beaucoup moins d’espace disque et permet de garder votre disque local propre.
Si vous voulez en savoir plus sur le sujet, je vous recommande ce Tutoriel pour débutants sur GitHub et Git.
Source:
https://www.datacamp.com/tutorial/git-clone-branch-tutorial