Processo de Controle de Origem do Repositório de Gits

1

Meu entendimento do Git é o seguinte:

1) Árvore de trabalho --- > Sistema de arquivos no qual você faz alterações manualmente.
2) Área de teste --- > Onde as mudanças ficam até que elas sejam cometidas.
3) Repositório --- > Onde as mudanças confirmadas vão (locais ou remotas).

Essencialmente, o que eu realmente quero é:

1) Árvore de trabalho - diretório de arquivos locais na minha área de trabalho.
2) Área de teste - coloque-se em um servidor de rede em algum lugar.
3) Repositório - GitHub para acompanhar meu código fonte.

Não tenho certeza se me confundi fazendo todas essas leituras sobre o Git e se a situação que acabei de descrever é realmente viável?

Essencialmente, quero que todos os desenvolvedores da minha equipe tenham uma cópia da árvore de trabalho local do código-fonte, então possam realizar alterações em um servidor em nossa rede e, a partir daqui, realizar um commit final no GitHub.

Isso está correto? Ou a área de preparação deve estar em cada máquina local?

Atenciosamente

    
por Goober 27.08.2009 / 13:17

3 respostas

7

Acho que vale a pena examinar aqui a terminologia usada no git:

  • git working tree: os arquivos em que você está trabalhando atualmente
  • git staging area: arquivos que você indica que deseja em seu próximo commit
  • git repository: um diretório em sua máquina com os arquivos de trabalho, bem como um diretório .git , que contém a versão completa & história da filial, etc.

Cada desenvolvedor possui um repositório git completo ao clonar outro repositório em sua máquina. De fato, todo repositório git possui todos esses elementos (exceto repositórios vazios nos quais não precisamos entrar aqui).

O que você quer é mais uma questão de processo ou política que governe o fluxo de trabalho de sua equipe. Você poderia configurar um pouco assim:

  1. cada desenvolvedor tem seu repositório git funcional em sua máquina
    • desenvolvedores fazem commits
    • que esta seja a árvore de trabalho como você a define acima
  2. assim que o desenvolvedor termina o trabalho, eles git push os confirmam para um repositório git em algum servidor em rede
    • é aqui que você faz seus testes, etc.
    • este é o servidor de teste da sua equipe
  3. quando os novos commits passarem em todos os testes, você git push deles para o repo final no github
    • este é o repositório principal e autoritário da sua equipe

Note que cada marcador é um repositório git que serve a qualquer propósito que você precisar e o define.

Um commit é feito pelo desenvolvedor em sua estação de trabalho. Depois disso, tudo que o git faz é embaralhar os commits entre os repositórios, onde quer que eles estejam e qualquer função que eles possam servir.

Espero que resolva as coisas um pouco.

    
por 27.08.2009 / 14:52
3

Bem, isso pode ser tecnicamente possível, mas não é a ideia por trás da área de preparação.

O ponto da área temporária é controlar o que você deseja confirmar, nos casos em que você não deseja confirmar tudo o que foi alterado na sua árvore de trabalho.

Talvez você tenha alterado várias coisas diferentes em sua árvore, e queira cometer apenas algumas delas, ou queira cometê-las em mais de uma vez (para fornecer comentários de confirmação diferentes). É para isso que você usa a área de preparação.

Não é destinado a armazenar coisas em um servidor.

Para fazer isso, você deve criar uma ramificação (algo como "staging_branch"), comprometer-se com isso e depois fazer o check-out no servidor por alguma ferramenta de CI, como o CruiseControl. Então, quando tudo estiver bem, você poderá mesclá-lo em seu ramo principal.

Ou apenas se comprometa com o seu ramo principal, e corrija se der errado: -).

    
por 27.08.2009 / 14:30
0

Na verdade, acabei de assistir a um incrível webcast do autor de Pro Git (link para o texto completo do livro). O'Reily deve postar o arquivo de vídeo em breve, mantenha os olhos abertos para ele .

Basicamente, existem alguns comandos básicos que você deve estudar: init , commit , checkout , push e branch . Estes irão servir uma grande parte de suas necessidades.

(Não deixe de conferir o link para o Pro Git, é um livro grátis sobre o git)

    
por 27.08.2009 / 15:09

Tags