Agora que git fetch --unshallowexiste (como na resposta do @ sdram), essa resposta não é mais a melhor.
Jack O'Connor
1
A resposta do @ sdram não funcionou para mim (versão 2.1.1 do git), mas essa resposta funcionou.
Kay - SE is evil
2
Nenhuma resposta funcionou para mim. Ambos os comandos conseguiu buscar todos os commits falta, mas quando eu tentar empurrar novos commits, eu recebo um erro sobre o servidor não saber sobre refs 'superficial'
Tyguy7
3
git fetch --depth=2147483647é a maior profundidade possível para fornecer ao comando.
clacke
5
Eu usei git fetch --unshallow, mas ainda não mostra todos os galhos.
Sid
674
O comando abaixo (git versão 1.8.3) converterá o clone raso em normal
git fetch --unshallow
Então, para ter acesso a todas as filiais na origem (obrigado @ Peter nos comentários)
Isso não desfaz o efeito colateral - único ramo. Para fazer isso, edite .git / config e altere buscar = + refs / heads / BRANCHNAME: refs / remotes / origin / BRANCHNAME para buscar = + refs / heads / *: refs / remotes / origem / *
Peter Cordes
3
Isso não cria ramificações locais que rastreiam as ramificações remotas; portanto, você ainda precisa fazer o checkout -b BRNAME origin / BRNAME para configurar isso.
Peter Cordes
25
Veja também stackoverflow.com/questions/17714159/... : git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";git fetch origin a partir de uma resposta não deve ser o mesmo que editting .git / config com a mão
Peter Cordes
Isso só funciona se o repositório estiver marcado como raso. Não me lembro como, mas há situações em que você pode acabar com um repositório incompleto sem ter feito explicitamente um clone superficial. @ do svick stackoverflow.com/a/6802238/260122 é a resposta que funciona cada vez.
clacke
git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'trabalhou para mim
gzaripov
19
Eu precisava aprofundar um repositório apenas para um commit específico.
Depois de ler man git-fetch, descobri que não se pode especificar um commit, mas pode especificar uma data:
git fetch --shallow-since=15/11/2012
Para aqueles que precisam de aprofundamento incremental, outra mancitação:
--deepen=<depth>
Semelhante a --thpth, exceto que especifica o número de confirmações do limite superficial atual em vez da ponta de cada histórico de ramificação remota.
Respostas:
EDIT:
git fetch --unshallow
agora é uma opção (obrigado Jack O'Connor).Você pode executar
git fetch --depth=1000000
(supondo que o repositório tenha menos de um milhão de confirmações).fonte
git fetch --unshallow
existe (como na resposta do @ sdram), essa resposta não é mais a melhor.git fetch --depth=2147483647
é a maior profundidade possível para fornecer ao comando.git fetch --unshallow
, mas ainda não mostra todos os galhos.O comando abaixo (git versão 1.8.3) converterá o clone raso em normal
Então, para ter acesso a todas as filiais na origem (obrigado @ Peter nos comentários)
fonte
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*";
git fetch origin
a partir de uma resposta não deve ser o mesmo que editting .git / config com a mãogit fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'
trabalhou para mimEu precisava aprofundar um repositório apenas para um commit específico.
Depois de ler
man git-fetch
, descobri que não se pode especificar um commit, mas pode especificar uma data:Para aqueles que precisam de aprofundamento incremental, outra
man
citação:fonte
Você pode tentar isso:
fonte
Nenhuma das mensagens acima fez o truque. Estou tentando trabalhar com tags git a partir de um clone superficial.
Primeiro eu tentei
que meio que trabalhou no meio. No entanto, nenhuma tag disponível!
Este último comando realmente buscou as tags e finalmente pude executar
e acabar com isso.
HTH
fonte