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?
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.
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...".
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:
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.
Respostas:
Se o diretório atual estiver vazio, você poderá fazer isso com:
(Observe
.
no final para especificar o diretório atual.) Obviamente, isso também cria o.git
diretório na sua pasta atual, não apenas o código-fonte do seu projeto.Este
[directory]
parâmetro opcional está documentado nagit clone
página de manual , que indica que a clonagem em um diretório existente só é permitida se esse diretório estiver vazio.fonte
.
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.rm .DS_Store
e você está pronto para ir.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 é:
Esta receita funciona mesmo se houver outros diretórios no diretório em que você deseja fazer o check-in.
fonte
github.com
lá depoisgit remote ...
, e não apenasgithub
?git fetch --all
antes dogit pull origin master
, porque, se houver outros ramos no repositório,git pull
eles não serão obtidos a menos que você usefetch
primeiro. Isso está correto?Se a pasta não estiver vazia, uma versão ligeiramente modificada da resposta de @ JohnLittle funcionou para mim:
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 .
fonte
Você pode especificar o diretório de destino como segundo parâmetro do
git clone
comando, para fazer:Isso clonará o repositório diretamente no diretório local atual.
fonte
clonar o git repo na pasta atual e vazia (no
git init
) e se você não usar ssh:fonte
esse trabalhador pra mim
fonte