Conceitos-chave

Sistema de controle de versão

  • Em inglês: version control system
  • Abreviação: VCS

Um sistema de controle de versão é uma ferramenta que ajuda você a acompanhar como o seu projeto muda com o tempo. Ele se lembra de cada edição, permite voltar a versões anteriores e facilita que as pessoas trabalhem juntas sem pisar no pé umas das outras.

No início, esses sistemas eram centralizados: tudo ficava em um servidor principal. Você precisava manter a conexão com ele para fazer alterações e, se esse servidor caísse, a equipe inteira parava de trabalhar.

Os sistemas modernos são distribuídos. Cada pessoa tem no próprio computador uma cópia completa do projeto e do histórico dele. Você pode fazer alterações, explorar ideias e compartilhar seu trabalho quando estiver tudo pronto. É mais rápido, mais flexível e muito mais resiliente.

  • Permite trabalhar offline. Você tem o projeto inteiro no seu computador, então mesmo em um avião ou em um lugar sem internet você pode continuar avançando, salvando seu trabalho e explorando versões anteriores sem interrupção.

  • Dá aos desenvolvedores espaço para experimentar. Cada pessoa pode ter o próprio espaço para testar ideias novas sem mexer na base de código principal. Você pode testar ideias malucas, refatorar sem medo e só mergear as alterações na base de código principal quando tudo estiver sólido. A colaboração vira exploração, não risco.

  • Oferece redundância embutida. A cópia de cada desenvolvedor é um backup completo do projeto, não só um snapshot. Se um servidor cair ou um repo sumir, qualquer clone pode trazer tudo de volta à vida em minutos.

O sistema de controle de versão mais popular hoje é o Git, que é um sistema de controle de versão distribuído (oba!).