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


233

Je voudrais git clonele contenu d'un référentiel que j'ai sur GitHub . Lorsque je git clone(git @ github: me / name.git ...) j'obtiens un dossier appelé name/et à l'intérieur du nom j'ai mon contenu ... Comment puis-je obtenir JUSTE le contenu?



Pour ignorer réellement le téléchargement d'objets inutiles pour économiser les ressources réseau: stackoverflow.com/questions/600079/…
— Ciro Santilli 法轮功 冠状 病 六四 事件 法轮功

Réponses:


314

Si le répertoire courant 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 sûr, cela crée également le .gitrépertoire dans votre dossier actuel, pas seulement le code source de votre projet.

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


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

12
Le répertoire git clones into doit être vide
— jolyonruss

1
@HumaunRashid Ajouter un .comme indiqué dans la réponse: git clone https://github.com/humaun21/Test .. Et oui, git@github.me/name.gitest un espace réservé pour quelle que soit votre adresse git repo réelle.
— Aaron Campbell

1
@JohnLittle Eu le même problème, il se trouve qu'il y a un fichier .DS_Store caché, qui s'y cache. Simplement rm .DS_Storeet vous êtes prêt à partir.
— Selrond

1
Si vous travaillez sur Linux OS, vous devez vous assurer que le répertoire est vide, y compris la vérification des fichiers et sous-répertoires cachés. Vous pouvez le faire avec ls -a. Vous devriez avoir seulement. et .. en sortie. Cela ne fonctionnera pas autrement
— Ayo Makanjuola

156

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

La solution dans ce cas est:

git init
git remote add origin git@github.com:me/name.git
git pull origin master

Cette recette fonctionne même s'il existe d'autres répertoires dans celui dans lequel vous souhaitez effectuer le paiement.


Hé, je reçois une erreur comme Autorisation refusée <clé publique>. L'interlocuteur à raccroché de façon inattendue.
— Stan

Cela ne devrait-il pas être github.comlà après git remote ..., et pas seulement github?
— amn

5
Cette réponse aurait dû être acceptée une. fonctionne parfaitement.
— vikramvi

J'ai lu ailleurs ici que vous devez exécuter git fetch --allavant le git pull origin master, car s'il y a d'autres branches sur le repo, git pullvous ne les obtiendrez que si vous les utilisez d' fetchabord. Est-ce correct?
— Alex G

38

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 configurer les clés SSH .


Quelle version de git utilisez-vous? Ça n'a pas marché pour moi. Il ne me laissera toujours pas le configurer car le
— répertoire

@ guribe94 git version 2.5.0
— Tomáš Zemanovič

3
C'est la même réponse, en utilisant simplement https anonyme au lieu de git-protocol sur ssh (nécessitant un compte github avec une configuration de paire de clés ssh).
— Peter Cordes

15

Vous pouvez spécifier le répertoire de destination comme deuxième paramètre de la git clonecommande, vous pouvez donc faire:

git clone <remote> .

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


2

pour cloner git repo dans le dossier actuel et vide (non git init) et si vous n'utilisez pas ssh:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.