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?

mazlix
fonte
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.

Mark Longair
fonte
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, [email protected]/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 [email protected]: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.

John Little
fonte
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 .

Tomáš Zemanovič
fonte
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.

Laurent Pireyn
fonte
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 .
fingerman
fonte
1

esse trabalhador pra mim

git clone <repository> .
Diego Santa Cruz Mendezú
fonte