Cloner un dépôt

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à cloner un dépôt Git et à explorer certaines options avancées de clonage. Git est un puissant système de contrôle de version largement utilisé dans le développement logiciel. Cloner un dépôt est une compétence fondamentale qui vous permet de créer une copie locale d'un dépôt distant, vous permettant de travailler sur le code, d'apporter des modifications et de collaborer avec d'autres personnes. Ce laboratoire (lab) est conçu pour les débutants et vous guidera étape par étape à travers le processus, en mettant l'accent sur les applications pratiques du clonage de dépôts.

Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau débutant avec un taux de réussite de 91%. Il a reçu un taux d'avis positifs de 88% de la part des apprenants.

Comprendre les dépôts distants et cloner un dépôt de base

Avant de commencer le clonage, comprenons ce qu'est un dépôt distant et pourquoi il est important dans Git.

Un dépôt distant (remote repository) est une version de votre projet qui est hébergée sur Internet ou sur un réseau quelque part. Il vous permet de collaborer avec d'autres en fournissant un emplacement centralisé où chacun peut pousser (push) ses modifications et tirer (pull) les mises à jour. Considérez-le comme un stockage en nuage pour votre code, mais avec les avantages supplémentaires du contrôle de version.

GitHub est l'une des plateformes les plus populaires pour héberger des dépôts Git distants. Il fournit une interface web pour gérer les dépôts, ainsi que des fonctionnalités supplémentaires telles que le suivi des problèmes (issue tracking), les demandes de fusion (pull requests) et les outils de gestion de projet. D'autres plateformes similaires incluent GitLab et Bitbucket.

Maintenant, clonons un dépôt simple depuis GitHub. Nous utiliserons le dépôt git-playground comme exemple.

Tout d'abord, naviguez vers le répertoire du projet où vous souhaitez stocker votre copie locale :

cd ~/project

Cette commande change votre répertoire courant en ~/project. Le symbole ~ représente votre répertoire personnel, donc ce chemin se traduit généralement par /home/yourusername/project.

Maintenant, clonons le dépôt :

git clone https://github.com/labex-labs/git-playground.git

Note : Les utilisateurs gratuits ne peuvent pas se connecter à Internet. Passez à la version Pro pour débloquer les fonctionnalités illimitées.

Décomposons cette commande :

  • git clone est la commande Git pour créer une copie d'un dépôt
  • https://github.com/labex-labs/git-playground.git est l'URL du dépôt que nous voulons cloner

Lorsque vous exécutez cette commande, Git effectuera les opérations suivantes :

  1. Créer un nouveau répertoire nommé git-playground dans votre emplacement actuel (~/project).
  2. Initialiser un nouveau dépôt Git dans ce répertoire.
  3. Configurer un dépôt distant appelé "origin" qui pointe vers l'URL à partir de laquelle vous avez cloné.
  4. Télécharger toutes les données du dépôt distant.
  5. Extraire (check out) une copie de travail de la dernière version de la branche principale (généralement appelée "master" ou "main").

Une fois le processus de clonage terminé, vous devriez voir une sortie similaire à celle-ci :

Cloning into 'git-playground'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (2/2), done.
remote: Total 9 (delta 1), reused 1 (delta 1), pack-reused 7
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.

Maintenant, vérifions que le dépôt a été cloné avec succès :

ls -l

Cette commande liste le contenu de votre répertoire courant. Vous devriez voir un nouveau répertoire nommé git-playground.

cd git-playground

Cette commande change votre répertoire courant vers le dépôt nouvellement cloné.

git status

Cette commande affiche l'état de votre répertoire de travail. Vous devriez voir un message indiquant sur quelle branche vous êtes (probablement "main" ou "master") et que votre répertoire de travail est propre.

Félicitations ! Vous venez de cloner votre premier dépôt. Cette copie locale est maintenant connectée au dépôt distant sur GitHub, ce qui vous permet de récupérer (fetch) les mises à jour ou de pousser (push) vos propres modifications (si vous avez les permissions nécessaires).

N'oubliez pas que le clonage d'un dépôt vous donne une copie complète de tous les fichiers du projet et de l'ensemble de l'historique Git. Cela signifie que vous pouvez travailler sur le projet hors ligne, apporter des modifications, créer de nouvelles branches, et plus encore, le tout sur votre machine locale.

Explorer le dépôt cloné

Maintenant que nous avons cloné le dépôt et que nous sommes dans le répertoire git-playground, explorons son contenu plus en détail.

Tout d'abord, regardons le contenu du répertoire :

ls -la

Cette commande affiche tous les fichiers et répertoires, y compris les fichiers cachés. Vous devriez voir un répertoire .git, qui contient toutes les informations liées à Git pour ce dépôt.

Voici ce que vous pourriez voir :

  • Fichiers et répertoires normaux : Ce sont les fichiers de projet réels avec lesquels vous pouvez travailler.
  • Répertoire .git : Ce répertoire caché est l'endroit où Git stocke toutes ses informations de suivi.
  • Fichier .gitignore (s'il est présent) : Ce fichier indique à Git quels fichiers ou répertoires ignorer dans le projet.

Maintenant, vérifions l'historique des commits du dépôt :

git log --oneline

Cela affiche une version condensée de l'historique des commits. Chaque ligne représente un commit, avec son identifiant unique (hash) et le message de commit.

Comprendre la structure d'un dépôt cloné est crucial pour un contrôle de version efficace. Le répertoire .git contient toutes les informations utilisées par Git pour gérer les versions, tandis que les autres fichiers et répertoires représentent l'état actuel du projet.

Vérifions également les dépôts distants associés à ce dépôt local :

git remote -v

Cette commande affiche les dépôts distants liés à votre dépôt local. Vous devriez voir "origin" pointant vers l'URL GitHub à partir de laquelle vous avez cloné.

origin  https://github.com/labex-labs/git-playground.git (fetch)
origin  https://github.com/labex-labs/git-playground.git (push)

Cloner dans un répertoire spécifique

Parfois, vous pourriez vouloir cloner un dépôt dans un répertoire ayant un nom différent. Cela est utile lorsque vous travaillez sur plusieurs versions d'un projet ou lorsque vous souhaitez donner au répertoire un nom plus descriptif.

Clonons le même dépôt à nouveau, mais cette fois-ci dans un répertoire nommé my-project :

cd ~/project
git clone https://github.com/labex-labs/git-playground.git my-project

Cette commande effectue deux actions :

  1. Elle clone le dépôt git-playground.
  2. Elle place les fichiers clonés dans un nouveau répertoire appelé my-project au lieu de git-playground.

Une fois le processus de clonage terminé, vous devriez voir une sortie similaire à ceci :

Cloning into 'my-project'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (2/2), done.
remote: Total 9 (delta 1), reused 1 (delta 1), pack-reused 7
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.

Cette fonctionnalité est particulièrement utile lorsque :

  • Vous avez déjà un répertoire portant le même nom que le dépôt.
  • Vous souhaitez cloner le même dépôt plusieurs fois à des fins différentes.
  • Vous souhaitez donner au répertoire un nom plus significatif dans le contexte de la structure de votre projet local.

N'oubliez pas que le nom du répertoire n'affecte pas le dépôt Git lui-même - c'est simplement le nom du dossier sur votre machine locale.

Vérifions le contenu de notre nouveau clone :

cd my-project
ls -la
git remote -v

Ces commandes vous montreront le contenu du répertoire my-project et le dépôt distant auquel il est connecté.

Clonage superficiel avec profondeur

Parfois, vous n'avez peut-être besoin que de la version la plus récente d'un dépôt sans son historique complet. Dans de tels cas, vous pouvez effectuer un clonage superficiel (shallow clone) en utilisant l'option --depth.

Clonons le dépôt à nouveau, mais cette fois-ci en ne récupérant que le commit le plus récent :

cd ~/project
git clone --depth 1 https://github.com/labex-labs/git-playground.git shallow-repo

Cette commande crée un clonage superficiel dont l'historique est tronqué pour ne conserver que le dernier commit. L'option --depth 1 indique à Git de ne récupérer que le commit le plus récent.

Les clonages superficiels peuvent être considérablement plus rapides et occuper moins d'espace sur le disque, ce qui est particulièrement utile pour les dépôts volumineux lorsque vous n'avez pas besoin de l'historique complet.

Pour vérifier le clonage superficiel, accédez au nouveau répertoire et vérifiez le journal des commits (git log) :

cd shallow-repo
git log --oneline

Vous ne devriez voir qu'un seul commit dans le journal.

Si vous décidez plus tard que vous avez besoin de plus d'historique, vous pouvez le récupérer en utilisant :

Ne lancez pas cette commande pour le moment. Sinon, l'étape de vérification échouera.

git fetch --unshallow

Cela récupérera l'historique complet du dépôt.

Cloner une branche spécifique

Parfois, vous pourriez vouloir cloner seulement une branche spécifique d'un dépôt. Cela peut être utile lorsque vous n'êtes intéressé que par une fonctionnalité ou une version particulière du projet.

Clonons une branche spécifique du dépôt :

cd ~/project
git clone -b main https://github.com/labex-labs/git-playground.git branch-repo

L'option -b main indique à Git de cloner seulement la branche main. Remplacez main par le nom de la branche que vous souhaitez cloner si celui-ci est différent.

Après le clonage, accédez au nouveau répertoire et vérifiez sur quelle branche vous vous trouvez :

cd branch-repo
git branch

Vous devriez voir seulement la branche main (ou toute autre branche que vous avez spécifiée).

Cette approche peut économiser du temps et de l'espace disque lorsque vous travaillez avec des dépôts volumineux où vous n'avez besoin que d'une branche spécifique.

Résumé

Dans ce laboratoire (lab), vous avez appris à cloner un dépôt Git et exploré plusieurs techniques avancées de clonage. Nous avons couvert :

  1. Comprendre les dépôts distants et le clonage de base d'un dépôt
  2. Explorer le contenu d'un dépôt cloné
  3. Cloner un dépôt dans un répertoire spécifique avec un nom personnalisé
  4. Créer un clonage superficiel (shallow clone) avec un historique limité
  5. Cloner une branche spécifique d'un dépôt

Ces compétences vous permettront de travailler efficacement avec des projets existants, de contribuer au logiciel open-source et de gérer votre propre code plus efficacement. N'oubliez pas que le clonage n'est que le début – Git propose de nombreuses autres fonctionnalités puissantes pour le contrôle de version et la collaboration.

Au fur et à mesure de votre progression avec Git, vous constaterez que ces différentes techniques de clonage peuvent être incroyablement utiles dans diverses situations, vous aidant à gagner du temps et à gérer vos projets plus efficacement.