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 :

OptionDescriptionExemple
(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>
--bareCrée un dépôt bare (sans working directory), utilisé comme dépôt centralgit 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>
—depthClone en mode shallow : récupère seulement les n derniers commitsgit clone --depth 1 <https://github.com/user/repo.git>
--single-branchNe 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 shallowgit clone --depth 10 --no-single-branch ...
recursive
, --recurse-submodules
Clone le dépôt ainsi que ses submodulesgit clone --recursive ...
--shallow-submodulesClone les submodules aussi en mode shallowgit 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, --quietMode silencieux : messages succinctsgit clone --quiet ...
-v, --verboseMode verbeux : affiche plus d’informationsgit clone --verbose ...
-n, —no-checkoutNe fait pas le checkout après clone (juste le dépôt)git clone --no-checkout ...
-l, --localClone optimisé pour dépôt local (hardlinks sur objets, par défaut pour chemins locaux)git clone -l /chemin/vers/repo
--no-localForce un clone “normal” même si le dépôt source est localgit clone --no-local /chemin/vers/repo
-s, —sharedClone en partageant les objets avec le repo source (alternates, pas de duplicata)git clone -s /chemin/vers/repo
—no-hardlinksDésactive l’utilisation de hardlinks même pour clone localgit clone --no-hardlinks /chemin/vers/repo
—reference<repo>Utilise déjà des objets existants dans un autre dépôt comme cachegit clone --reference=../autrerepo ...
-u <upload-pack>,—upload-pack<chemin>Chemin d’un programme upload-pack distant pour SSHgit clone -u ssh-upload-pack ...

Points importants

  • c permet 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.
  • -mirror clone absolument tout, pas seulement branches et tags, parfait pour de la migration/backup complet.
  • b permet 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 :

Cf. : Documentation officielle git-clone135864