Clonar o conteúdo de um repositório GitHub (sem a própria pasta)


233

Gostaria git clonedo conteúdo de um repositório que tenho no GitHub . Quando eu git clone(git @ github: me / name.git ...) recebo uma pasta chamada name/e nome interno tenho meu conteúdo ... Como obtenho APENAS o conteúdo?



Para pular realmente baixando objetos desnecessários para salvar recursos de rede: stackoverflow.com/questions/600079/...
Ciro Santilli郝海东冠状病六四事件法轮功

Respostas:


314

Se o diretório atual estiver vazio, você poderá fazer isso com:

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

(Observe .no final para especificar o diretório atual.) Obviamente, isso também cria o .gitdiretório na sua pasta atual, não apenas o código-fonte do seu projeto.

Este [directory]parâmetro opcional está documentado na git clonepágina de manual , que indica que a clonagem em um diretório existente só é permitida se esse diretório estiver vazio.


2
Infelizmente, isso não funciona se houver outros diretórios não relacionados já no mesmo diretório. Procurando uma solução. A mensagem de erro é: "fatal: caminho de destino '.' já existe ... "
John Little

12
Os clones diretório git em deve estar vazio
jolyonruss

1
@HumaunRashid Adicionar um .como discutido na resposta: git clone https://github.com/humaun21/Test .. E sim, git@github.me/name.gité um espaço reservado para qualquer que seja o seu endereço de repositório Git real.
Aaron Campbell

1
@ JohnLittle Teve o mesmo problema, acontece que existe um arquivo .DS_Store oculto, que se esconde lá. Simplesmente rm .DS_Storee você está pronto para ir.
Selrond 22/03

1
Se você estiver trabalhando no sistema operacional linux, precisará garantir que o diretório esteja vazio, incluindo a verificação de arquivos e subdiretórios ocultos. Você pode fazer isso com ls -a. Você deveria ter apenas. e .. como saída. Isso não vai funcionar de outra forma
Ayo Makanjuola

156

Infelizmente, isso não funciona se houver outros diretórios não relacionados já no mesmo diretório. Procurando uma solução. A mensagem de erro é: "fatal: caminho de destino '.' já existe...".

A solução neste caso é:

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

Esta receita funciona mesmo se houver outros diretórios no diretório em que você deseja fazer o check-in.


Olá, estou recebendo um erro como Permissão negada <chave pública>. O terminal remoto desligou inesperadamente.
Stan

Não deveria estar github.comlá depois git remote ..., e não apenas github?
amn

5
Esta resposta deveria ter sido aceita. funciona perfeitamente.
vikramvi

Eu li em outro lugar aqui que você precisa executar git fetch --allantes do git pull origin master, porque, se houver outros ramos no repositório, git pulleles não serão obtidos a menos que você use fetchprimeiro. Isso está correto?
Alex G

38

Se a pasta não estiver vazia, uma versão ligeiramente modificada da resposta de @ JohnLittle funcionou para mim:

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

Como o @ peter-cordes apontou, a única diferença é usar o protocolo https em vez do git, para o qual você precisa ter chaves SSH configuradas .


Qual versão do git você está executando? Isso não funcionou para mim. Ele ainda não me permite configurá-lo porque o dir não está vazio
guribe94

@ guribe94 git versão 2.5.0
Tomáš Zemanovič 15/03

3
Esta é a mesma resposta, apenas usando https anônimo em vez de git-protocol sobre ssh (exigindo uma conta github com um par de chaves ssh configurado).
Peter Cordes

15

Você pode especificar o diretório de destino como segundo parâmetro do git clonecomando, para fazer:

git clone <remote> .

Isso clonará o repositório diretamente no diretório local atual.


2

clonar o git repo na pasta atual e vazia (no git init) e se você não usar ssh:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.