Recuperar commit específico a partir de um repositório Git remoto
Existe alguma forma de recuperar apenas um compromisso específico de um reporte Git remoto sem o clonar no meu PC? A estrutura do repo remoto é absolutamente a mesma que a minha e, portanto, há'não há conflitos, mas eu não tenho idéia de como fazer isso e eu não'não quero clonar esse enorme repositório.
Eu sou novo a ir, há alguma maneira?
178
3
Você só clona uma vez, então se você já tem um clone do repositório remoto, puxando dele ganhou't faça o download de tudo novamente. Basta indicar que ramo você quer puxar, ou buscar as alterações e fazer o checkout do commit que você quer.
Buscar de um novo repositório é muito barato em largura de banda, pois só vai baixar as mudanças que você não't tem. Pense em termos de Git fazendo a coisa certa, com carga mínima.
Git armazena tudo na pasta `.git'. Um commit can't é buscado e armazenado em isolamento, ele precisa de todos os seus antepassados. Eles são interrelacionados.
Para reduzir o tamanho do download pode no entanto pedir ao git para ir buscar apenas objectos relacionados com um ramo específico ou comprometer-se:
Isto irá baixar apenas os commits contidos no ramo remoto
branch
(e apenas os que você perde), e armazená-lo emorigin/branch
. Você pode então fundir ou fazer o checkout.Você também pode especificar apenas um compromisso SHA1:
Isto irá baixar apenas o commit do SHA-1 96de5297df870 especificado (e seus antepassados que você perde), e armazená-lo como (não existente) ramo remoto `origin/foo-commit'.
Fiz um puxão no meu reporte de idiota:
Permitindo que o idiota puxasse todo o código para a filial e depois fui fazer um reset para o compromisso que me interessava.
'git reset --hard `
Espero que isto ajude.
Você pode simplesmente obter um único commit de um repo remoto com
onde,
pode ser um nome de reporte remoto (por exemplo
origin) ou mesmo um URL de reporte remoto (por exemplo
https://git.foo.com/myrepo.git`)por exemplo
depois de teres buscado o commit (e os antepassados desaparecidos), podes simplesmente fazer o checkout com
Note que isto o trará no " cabeça destacada" estado.