freeCodeCamp/guide/portuguese/software-engineering/version-control-system/index.md

47 lines
2.6 KiB
Markdown

---
title: Version Control System
localeTitle: Sistema de Controle de Versão
---
## Sistema de Controle de Versão
Sistemas de controle de versão (VCS), também chamados de Source Code Management (SCM), são ferramentas usadas para rastrear mudanças nos arquivos, gerenciar a versão e facilitar a edição colaborativa de arquivos. Existem principalmente 2 tipos de VCS:
* Sistema de Controle de Versão Centralizado Onde um repositório central é autoritativo. A arquitetura associada é cliente / servidor. Os primeiros VCS (CVS, SVN…) foram Centralized Version Control System.
* Sistema de Controle de Versão Distribuída Onde várias modificações de troca de repositório. A arquitetura associada é principalmente peer to peer, mas um repo pode ser declarado como autoritativo. O VCS moderno mais utilizado (Git, Mercurial…) é o Distributed Version Control System.
### Por que usar isso?
* **Histórico de alterações** - O VCS permite ao usuário navegar e pesquisar todas as alterações que são gravadas automaticamente com informações úteis (data, autor ...) e
* **Versões / tags** - o usuário pode pesquisar / recuperar o estado específico dos arquivos que foram rotulados com tags e nomes de versão
* **Ramificação / Mesclagem** - O Distributed Version Control System facilita a manutenção da ramificação paralela de arquivos e a mescla parcial ou totalmente quando necessário.
* **Operações atômicas** - Todos os VCS modernos fornecem operações atômicas: todas as modificações são garantidas para ter sucesso ou falhar como um todo, garantindo que os arquivos estejam sempre em um estado consistente.
### Sistema de Controle de Versão mais popular
* Git
_O Git_ é um Sistema de Controle de Versão Distribuído e provavelmente o VCS mais usado atualmente com o _Mercurial_ .
* Mercurial
_Mercurial_ é um sistema de controle de versão distribuído e provavelmente o mais usado VCS usado hoje em dia com o _Git_ .
* CVS
_O CVS_ é um antigo SCM que era proeminente antes do _SVN_ generalizado. _O CVS_ e o _SVN_ agora estão obsoletos em favor do Distributed Version Control System, como o _Git_ e o _Mercurial_ .
* SVN / Subversion
_O SVM_ é um antigo SCM que sucedeu o _CVS_ . Eventualmente, o _SVN_ foi preterido pela ampla adoção do Distributed Version Control System, como o _Git_ e o _Mercurial._
### Mais Informações:
[CVS](http://savannah.nongnu.org/projects/cvs)
[Git](https://git-scm.com/)
[Mercurial](https://www.mercurial-scm.org/)
[SVN](http://subversion.tigris.org/)
[Controle de versão na Wikipedia](https://en.wikipedia.org/wiki/Version_control)