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.

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>
git clone ssh://[email protected]/path/to/team-project.git
cd team-project
# You must work on this projectgit 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>
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>
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 :
git clone
--branch<repo>L'argument
--branchspé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 branchenew_featuredepuis le dépôt distant :
git clone --branch <repo>
git clone --branch new_feature git://remoterepository.gitgit clone
--bare<repo>Avec l'argument
--barepassé à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.git clone
--mirror<repo>Le comportement de l'argument
--bareest hérité par--mirror, ce qui signifie que passer l'argument--mirrorpassera également--bare. L'argument--mirrorclonera 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.
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>
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.
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>
git clone ssh://user@server/project.gitSSH 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.
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>
git clone https://example.com/gitproject.gitL'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.
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>
git clone /opt/git/project.gitPratique
Quel est l'objectif principal de la commande 'git clone' dans Git ?