Description : Clone un repository distant.
Syntaxe : git clone [<options>] <repository> [<directory>]
Voici un tableau synthétique des principales options/arguments de la commande git clone avec leur description et un exemple :
| Option | Description | Exemple |
|---|---|---|
(aucune) | Clone le dépôt distant (toutes les branches, HEAD checkout) | git clone <https://github.com/user/repo.git> |
-b <nom>, --branch <nom> | Clone et positionne le HEAD sur la branche ou le tag indiqué | git clone -b develop <https://github.com/user/repo.git> |
-o <nom>, --origin <nom> | Donne un nom personnalisé au remote (au lieu de origin ) | git clone -o upstream <https://github.com/user/repo.git> |
--bare | Crée un dépôt bare (sans working directory), utilisé comme dépôt central | git clone --bare <https://github.com/user/repo.git> |
| —mirror | Crée un miroir complet (inclut toutes les refs, tags, branches, hooks - pour duplication exacte) | git clone --mirror <https://github.com/user/repo.git> |
| —depth | Clone en mode shallow : récupère seulement les n derniers commits | git clone --depth 1 <https://github.com/user/repo.git> |
--single-branch | Ne clone que la branche spécifiée (par défaut avec --depth, sinon toutes les branches) | git clone --single-branch -b develop ... |
| —no-single-branch | Avec --depth, récupère aussi les branches proches non shallow | git clone --depth 10 --no-single-branch ... |
| recursive , --recurse-submodules | Clone le dépôt ainsi que ses submodules | git clone --recursive ... |
--shallow-submodules | Clone les submodules aussi en mode shallow | git clone --recurse-submodules --shallow-submodules ... |
-c <clé>=<valeur>, --config <clé>=<valeur> | Applique une configuration spécifique au dépôt cloné (git config initiale) | git clone -c core.autocrlf=false ... |
—template =<dossier> | Utiliser un dossier de template personnalisé (hook, etc.) | git clone --template=/chemin/template ... |
-q, --quiet | Mode silencieux : messages succincts | git clone --quiet ... |
-v, --verbose | Mode verbeux : affiche plus d’informations | git clone --verbose ... |
-n, —no-checkout | Ne fait pas le checkout après clone (juste le dépôt) | git clone --no-checkout ... |
-l, --local | Clone optimisé pour dépôt local (hardlinks sur objets, par défaut pour chemins locaux) | git clone -l /chemin/vers/repo |
--no-local | Force un clone “normal” même si le dépôt source est local | git clone --no-local /chemin/vers/repo |
-s, —shared | Clone en partageant les objets avec le repo source (alternates, pas de duplicata) | git clone -s /chemin/vers/repo |
| —no-hardlinks | Désactive l’utilisation de hardlinks même pour clone local | git clone --no-hardlinks /chemin/vers/repo |
—reference<repo> | Utilise déjà des objets existants dans un autre dépôt comme cache | git clone --reference=../autrerepo ... |
-u <upload-pack>,—upload-pack<chemin> | Chemin d’un programme upload-pack distant pour SSH | git clone -u ssh-upload-pack ... |
Points importants
cpermet d’injecter une config git locale dès le clonage.- Avec un repo bare, pas de working directory : utile pour les serveurs d’intégration ou de backup.
-mirrorclone absolument tout, pas seulement branches et tags, parfait pour de la migration/backup complet.bpermet de cloner et d’être tout de suite sur la bonne branche, même si ce n’est pas le HEAD.
Pour la liste exhaustive :