web-dev-qa-db-fra.com

Cloner le contenu d'un référentiel GitHub (sans le dossier lui-même)

Je voudrais git clone le contenu d'un dépôt que j'ai sur GitHub . Lorsque je git clone (git @ github: me/name.git ...), je reçois un dossier nommé name/ et un nom interne qui contient mon contenu ... Comment obtenir JUSTE le contenu?

199
mazlix

Si le répertoire en cours est vide, vous pouvez le faire avec:

git clone git@github:me/name.git .

(Notez le . à la fin pour spécifier le répertoire actuel.) Bien entendu, cela crée également le répertoire .git dans votre dossier actuel, pas uniquement le code source de votre projet.

Ce paramètre facultatif [directory] est documenté dans la page de manuel git clone , qui indique que le clonage dans un répertoire existant n'est autorisé que si ce répertoire est vide.

266
Mark Longair

Malheureusement, cela ne fonctionne pas s'il existe déjà d'autres répertoires non liés dans le même répertoire. Vous cherchez une solution. Le message d'erreur est le suivant: "irrécupérable: chemin de destination". existe déjà...".

La solution dans ce cas est:

git init
git remote add Origin [email protected]:me/name.git
git pull Origin master

Cette recette fonctionne même s'il y a d'autres répertoires dans celui que vous voulez extraire.

123
John Little

Si le dossier n'est pas vide, une version légèrement modifiée de la réponse de @ JohnLittle a fonctionné pour moi:

git init
git remote add Origin https://github.com/me/name.git
git pull Origin master

Comme l'a souligné @ peter-cordes, la seule différence est l'utilisation du protocole https au lieu de git, pour lequel vous devez disposer de clés SSH configurées .

31
Tomas Zemanovic

Vous pouvez spécifier le répertoire de destination en tant que deuxième paramètre de la commande git clone. Vous pouvez ainsi:

git clone <remote> .

Cela clonera le référentiel directement dans le répertoire local en cours.

13
Laurent Pireyn

pour cloner git repo dans le dossier current et empty (no git init) et si vous n'utilisez pas ssh:

git clone https://github.com/accountName/repoName.git .
0
fingerman

cet ouvrier pour moi

git clone <repository> .