L’option --no-checkout (ou -n) dans git clone signifie que Git ne fera pas le checkout automatique de la branche HEAD après la fin du clonage.
Explication concrète
- Normalement, après un
git clone, Git télécharge tous les objets, puis crée une copie des fichiers sources dans ton dossier de travail (working directory) en positionnant automatiquement ta branche sur la brancheHEADdu dépôt distant. - Avec l’option
-no-checkout, Git ne va pas créer cette copie de fichiers tout de suite, donc le dossier de travail est vide ou dans un état “non-checké”, seulement les données Git internes sont présentes (.git).
Pourquoi utiliser -no-checkout ?
- Pour gagner du temps et de la place disque si tu veux juste récupérer les objets Git (par exemple dans des scripts ou CI/CD).
- Pour faire une opération intermédiaire avant le checkout, comme un checkout différé sur une autre branche, ou modifier la configuration avant d’extraire le contenu.
- Dans les cas avancés où tu souhaites contrôler finement quelles branches ou commits checkout après le clone.
Exemple d’utilisation
bashgit clone --no-checkout <https://github.com/monutilisateur/monrepo.git>
-
Tu récupères tout l’historique git sans générer la copie des fichiers dans le dossier.
-
Tu peux ensuite faire un checkout manuel par exemple :
bashgit checkout main
En résumé
| Commande | Comportement |
|---|---|
git clone <url> | Clone + checkout automatique (HEAD) |
git clone --no-checkout | Clone sans checkout automatique, travail manuel de checkout requis |
Veux-tu que je t’explique comment faire un checkout manuel après un clone avec --no-checkout ?
- https://git-scm.com/docs/git-clone
- https://stackoverflow.com/questions/18525152/git-clone-and-checkout-in-a-single-command/18526252
- https://git-scm.com/docs/git-clone/2.22.1
- https://stackoverflow.com/questions/59276829/how-to-git-clone-without-downloading-the-file-objects
- https://github.com/gocd/gocd/issues/1890
- https://manpages.ubuntu.com/manpages/jammy/man1/git-clone.1.html
- https://about.gitlab.com/blog/partial-clone-for-massive-repositories/
- https://github.blog/open-source/git/get-up-to-speed-with-partial-clone-and-shallow-clone/
- https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-clone
- https://www.atlassian.com/git/tutorials/using-branches/git-checkout