3. Principal diferença entre SVN e GIT
O Subversion é um sistema de controle de versão
centralizado utilizado tradicionalmente em projetos Java.
O Git é um sistema de controle de versão distribuído que
apresenta crescente adoção na comunidade de
desenvolvimento de software em geral, especialmente
após sua popularização através do serviço de
hospedagem de códigos GitHub e BitBucket.
6. Por que você deveria mudar do Subversion para Git
"Tenho usado o Subversion por algum tempo. Ele atende bem as minhas demandas,
– então, seria apenas um controle de versão, certo?"
Vamos as vantagens inerentes dos sistemas distribuídos em relação aos sistemas
centralizados.
Git é um sistema de controle de versão distribuído. Então, o que “distribuído” significa?
Significa que em vez de executar `svn checkout (url)` para pegar a última versão do seu
repositório, com o Git você roda `git clone (url)`, o que dá a você uma cópia completa de
toda o histórico daquele projeto. Isso significa que imediatamente depois do clone, não
existe basicamente nenhuma informação sobre aquele projeto que o servidor do qual você
clonou tenha que você não tenha. Nesse ponto Subversion se torna ineficiente,
comparando, é tão rápido clonar um repositório inteiro no Git quanto fazer o checkout de
uma única versão do mesmo repositório no Subversion.
7. Algumas vantagens imediatas de usar o Git
Uma é que quase toda a operação agora é feita off data no seu disco local, o que significa
que é incrivelmente rápido e pode ser feito offline. Isso significa que você pode fazer
commits, diffs, logs, branches, merges, file annotation e mais – inteiramente offline, off VPN.
A outra vantagem implícita desse modelo é que seu fluxo de trabalho não tem um único
ponto de falha. Como cada pessoa que trabalha no seu projeto tem o que é essencialmente
um backup completo dos dados do projeto, perder seus servidores de colaboração é uma
pequena inconveniência.
No Git, qualquer membro da equipe pode enviar arquivos para qualquer servidor onde exista
acesso via SSH para qualquer membro, e toda a equipe pode facilmente estar pronta para
trabalhar em uma questão de minutos.
Uma desvantagem imediata de usar o Subversion
Imagine, por um momento, seu servidor Subversion tendo uma séria corrupção de drive – quand
8. Melhor Governança com fluxos de trabalho
O Git não depende de um servidor central, mas tem a habilidade de sincronizar com outros
repositórios Git – para pegar e levar as mudanças entre eles. Isso significa que você pode
adicionar múltiplos repositórios remotos ao seu projeto, alguns somente de leitura e outros
com possibilidade de acesso de escrita também, o que significa que você pode ter quase
qualquer tipo de fluxo de trabalho em que você pode pensar.
Integração contínua e Deploy Contínuo
Existem centenas de ferramentas, muitas delas SaaS, onde você apenas autoriza por uma
credencial, dando acesso a está ferramenta ao seu repositório Git, e baseado em eventos
como:
- Commit na Master
- Geração de TAG
- Commit em determinada Branch
- Aprovação de Pull Request
Esses eventos podem gerar facilmente um deploy da sua aplicação em ambientes de Dev,
QA, Stage ou Production, e essas ferramentas permitem facilmente integração de código
em servidores, principalmente em ambientes Cloud como AWS, Google, Digital Ocean
As integrações com servidores Git são inúmeras.