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!).
.gitignoregit checkoutgit configgit taggit worktree