Logotipo do Git

Git

Controle de Versão

Como o próprio nome se define, tem ênfase em gerenciar diferentes versões de um mesmo projeto, onde é permitido visualizar o histórico das modificações, trabalho cooperativo entre programadores e possibilitar comparações entre as versões desenvolvidas com equipe de desenvolvimento.

Apresenta 5 características:

  1. Registro de Alterações
  2. Quaisquer sejam as modificações feitas nas entrelinhas dos arquivos do projeto, serão salvas o histórico dessas modificações, ajudando na visualização das mudanças realizadas entre versões e nas futuras correções de software.

  3. Desenvolvimento de Versões Diferentes
  4. Com um sistema que possui ramificações (Branches) de projeto, a equipe pode trabalhar simultaneamente de forma eficaz em fluxos diferentes sem afetar o código-fonte matriz, contando com a verificação de Branches com alterações em conflito e mesclagem de projeto.

  5. Rastreio de Alterações
  6. Possui a capacidade de rastrear todas as modificações realizadas, conectar com o software de desenvolvimento do projeto e comentários de cada ajuste realizado pelo programador, contudo, facilitando na análise de bugs e no fluxo do projeto.

  7. Segurança do Projeto
  8. Somente pessoas autorizadas e identificadas podem manipular o código-fonte, evitando a corrupção dos arquivos.

  9. Repositório Remoto
  10. Todo o projeto será salvo em um repositório remoto, onde em casos de imprevistos pode facilitar na recuperação do projeto.

Como Funciona:

O projeto fica armazenado no servidor(repositório remoto), com todos os históricos e modificações de cada versão. O desenvolvedor pode baixar a última versão e trabalhá-la em sua área de trabalho (Workstation) e posteriormente atualizar a versão contida no servidor.

Os comandos utilizados para efetuarem a sincronização de arquivos do projeto entre a área de trabalho e o servidor são: commit e update.

O comando commit realiza o envio de todos os arquivos alterados na área de trabalho para o servidor com um novo histórico de atualização. O comando update irá baixar a última versão do servidor para a área de trabalho do programador.

Sistemas Centralizados de Controle de Versão

Neste sistema, existe apenas um servidor e várias cópias do projeto nas diversas áreas de trabalho, onde estabelece conexão entre eles. Caso o servidor eventualmente pare de funcionar, não é possível fazer a recuperação do projeto sem algum backup feito momentos antes, sendo um ponto negativo desse tipo de sistema.

Imagem ilustrativa do controle de versões dos projetos no servidor com sistema centralizado

Sistemas Distribuídos de Controle de Versão

Neste sistema, os desenvolvedores podem obter a versão mais recente e duplicar localmente o repositório completo. Assim, caso um dos servidores cair, e esses sistemas estiverem conectados por meio dele, qualquer um dos repositórios dos programadores podem ser copiados de volta para o servidor para restaurá-lo. Cada clonagem feita do projeto é backup completo dos dados.

Imagem ilustrativa do controle de versões dos projetos no servidor
Fonte: