Posso fazer git extrair uma cópia de trabalho somente de um repositório remoto?

4

Como administrador do sistema, gostaria de poder escrever um processo automatizado para instalação em um servidor de produção que:

  • tem acesso a um repositório git remoto (digamos, em git.mycompany.com )
  • pode obter uma cópia de um branch / label (digamos, release_20110721_01 ) do repositório
  • não criará uma cópia local de todo o repositório

Em outras palavras, tenha um repositório central contendo todas as revisões, mas instale apenas nos servidores de produção a tag específica.

Existe uma maneira de fazer isso? Pelo menos com o CVS uma cópia de trabalho de um módulo com uma tag dada pode ser obtida sem ter que puxar uma cópia de todo o repositório.

    
por PP. 21.07.2011 / 13:34

2 respostas

4

Essa é a principal diferença entre um VCS centralizado (como o CVS) e um DVCS (Distributed): você sempre clona todo o conteúdo de um repositório, mesmo que você possa executar um < um clone superficial , como Olipro menciona .

  • Em um CVCS, você pode colocar tudo e obter bacj apenas um subconjunto dele.
  • Em um DVCS, você considera um repo como um conjunto global e coerente de arquivos, que você sempre manipula como um todo.

É possível fazer um clone superficial de apenas um ramo, mas é complicado: consulte " Clone parcial com Git e Mercurial ".

Mas eu recomendo não usar o Git como uma ferramenta de gerenciamento / implantação de versões: " Como rasa clonar uma única ramificação no git? ".

Eu preferiria usar o git archive para compactar a ramificação / versão correta de que você precisa e, em seguida, copie-a para o servidor apropriado.

    
por 21.07.2011 / 14:26
2

Certifique-se de tornar seu repositório central acessível ao servidor de produção não-provisionado, executar um clone git do servidor usando as opções -b e --depth para especificar qual ramificação você gostaria, juntamente com a profundidade de revisão desejada. ter disponível para isso.

    
por 21.07.2011 / 14:19

Tags