Aller au contenu

git clone

Description

La commande git clone crée un clone/copie d'un dépôt existant dans un nouveau répertoire. Elle est également utilisée pour créer des branches de suivi distant pour chaque branche du dépôt cloné. C'est la commande la plus courante qui permet aux utilisateurs d'obtenir une copie de développement d'un dépôt central existant.

Gitclone

Utilisation de git clone

Tout d'abord, la commande git clone est utilisée pour cibler un dépôt existant et le cloner ou le copier dans un nouveau répertoire. Une copie locale stockée sur un serveur, accessible à l'adresse example.com, peut être obtenue en utilisant le nom d'utilisateur SSH x_person, comme suit :

git clone <repo>

bash
git clone ssh://[email protected]/path/to/team-project.git
cd team-project
# You must work on this project

git clone initialise un nouveau dépôt Git dans le dossier team-project sur votre machine locale et le remplit avec le contenu du dépôt central. Ensuite, vous pouvez cd dans le projet pour commencer à modifier des fichiers, valider des instantanés et interagir avec d'autres dépôts.

Clonage vers un dossier spécifique

Vous devez cloner le dépôt situé à <repo> dans le dossier nommé <directory> sur la machine locale.

git clone <repo> <directory>

bash
git clone <repo> <directory>

Clonage d'une balise spécifique

Clonez le dépôt à <repo> et ne clonez que la référence pour <tag>.

git clone --branch <tag> <repo>

bash
git clone --branch <tag> <repo>

Différence entre git init et git clone

Les git init et git clone sont souvent confondues. Il est important de noter que git init crée un nouveau dépôt local vide, tandis que git clone copie un dépôt distant existant sur votre machine locale. git clone ne nécessite pas d'exécuter git init au préalable ; il initialise automatiquement le dépôt local et configure les branches de suivi distant.

Options de configuration de Git Clone

Les options de configuration sont les outils nécessaires pour faire fonctionner Git selon vos préférences ou celles de votre équipe. Les plus courantes sont présentées ci-dessous :

  1. git clone --branch <repo>

    L'argument --branch spécifie une branche qui doit être clonée à la place de celle indiquée par le HEAD distant, généralement la branche master. De plus, vous pouvez passer une balise au lieu d'une branche pour obtenir le même effet. En utilisant l'exemple ci-dessous, vous obtiendrez un clone de la branche new_feature depuis le dépôt distant :

git clone --branch <repo>

bash
git clone --branch new_feature git://remoterepository.git
  1. git clone --bare <repo>

    Avec l'argument --bare passé à git clone, vous obtiendrez une copie du dépôt distant créée sans répertoire de travail. Ainsi, le dépôt sera créé avec l'historique du projet, permettant des opérations de push ou de pull, mais sans possibilité de modification.

  2. git clone --mirror <repo>

    Le comportement de l'argument --bare est hérité par --mirror, ce qui signifie que passer l'argument --mirror passera également --bare. L'argument --mirror clonera toutes les références étendues du dépôt distant. Il vous permettra également de maintenir une configuration de suivi des branches distantes.

URLs Git

Git possède sa propre syntaxe d'URL. Elle est utilisée pour transmettre l'emplacement des dépôts distants aux commandes Git. Les URLs Git sont importantes car git clone est principalement utilisé sur des dépôts distants.

Protocoles d'URL Git

Git peut utiliser les protocoles suivants pour le transfert de données : Git, Secure Shell (SSH), HTTPS et Local. Il est à noter que tous ces protocoles nécessitent que Git soit installé et fonctionnel sur le serveur, à l'exception d'HTTPS.

  1. Git

    Le protocole Git est unique à Git. Il s'agit d'un daemon spécial qui s'exécute sur le port 9418, fournissant un service similaire à SSH mais sans aucune authentification.

git clone git:// <repo>

bash
git://host.xz[:port]/path/to/repo.git/

L'avantage du protocole Git est sa rapidité de transfert. Le protocole Git présente également quelques inconvénients : l'absence d'authentification et la difficulté de configuration du protocole.

  1. SSH

    Secure Shell (SSH) est un protocole réseau qui permet de se connecter en toute sécurité d'un ordinateur à un autre. Dans la plupart des cas, l'accès SSH aux serveurs est configuré par défaut. Il est nécessaire d'établir des identifiants avec le serveur d'hébergement avant de se connecter.

git clone ssh:// <repo>

bash
git clone ssh://user@server/project.git

SSH est le seul protocole réseau qui permet de lire et d'écrire facilement dans les dépôts. SSH présente de nombreux autres avantages, tels qu'une configuration facile, un accès sécurisé (tous les transferts de données sont chiffrés et authentifiés) et une compacité des données avant le transfert. L'inconvénient de SSH est qu'il ne prend pas en charge l'accès anonyme au dépôt Git. Vous pouvez trouver plus d'informations sur les clés SSH dans notre section Clé SSH.

  1. HTTPS

    HTTPS signifie HyperText Transfer Protocol Secure. Ce protocole est principalement utilisé pour transmettre des données HTML sur Internet. Git est configuré pour partager des informations via HTTPS.

git clone https:// <repo>

bash
git clone https://example.com/gitproject.git

L'un des avantages d'HTTPS est sa simplicité de configuration. Il ne nécessite pas non plus beaucoup de ressources sur le serveur. Il chiffre le transfert de contenu. Les pare-feu d'entreprise sont configurés pour autoriser le trafic via ce port, faisant ainsi d'HTTPS l'un des protocoles les plus couramment utilisés.

Le principal inconvénient est une surcharge légèrement plus élevée due au chiffrement, ce qui peut rendre le clonage ou la récupération depuis le dépôt légèrement plus lente par rapport au protocole Git.

  1. Local

    Local est un protocole de base dans lequel le dépôt distant se trouve dans un autre répertoire sur le disque. Il est utilisé lorsque tous les membres de l'équipe ont accès à un système de fichiers partagé. Un système de fichiers partagé vous permet de cloner, de pousser et de tirer depuis un dépôt local. Le chemin d'accès au dépôt peut être utilisé comme URL pour cloner un dépôt, comme dans le cas d'un projet existant.

git clone <local_path>

bash
git clone /opt/git/project.git

Pratique

Quel est l'objectif principal de la commande 'git clone' dans Git ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.