Sistemas de controle de versões de arquivos
GIT

Criado por Linus Torvalds
GIT x SVN
GIT x SVN

SVN - Centralizado

Git - Distribuído
GIT x SVN
Caso de Uso
GIT x SVN
Caso de Uso

Repositório da Mozilla
240.000 arquivos
10 anos de histórico do projeto
GIT x SVN
Caso de Uso

Repositório da Mozilla
240.000 arquivos
10 anos de histórico do projeto

12	 GB
Espaço usado no SVN
GIT x SVN
Caso de Uso

Repositório da Mozilla
240.000 arquivos
10 anos de histórico do projeto

12	 GB 420	 MB
Espaço usado no SVN

Espaço usado no Git
GIT x SVN
Caso de Uso

30x

Repositório da Mozilla
240.000 arquivos
10 anos de histórico do projeto

menos espaço após
migrar do SVN para o Git

12	 GB 420	 MB
Espaço usado no SVN

Espaço usado no Git
Branching x Tagging
Branching x Tagging

master
Branching x Tagging
feature_x
branch

master

merge
Branching x Tagging
feature_x
merge

branch

master
branch

feature_y
Branching x Tagging
Tag 1.0.0
feature_x
merge

branch

master
branch

feature_y
Branching x Tagging
Tag 1.0.0
feature_x
merge

branch

master
branch

feature_y

Tag 1.0.1
GIT x SVN
GIT x SVN

GIT
distribuído

armazenamento otimizado

+++ rápido
GIT x SVN

GIT
distribuído

armazenamento otimizado

+++ rápido

SVN
centralizado
duplica código
possui controle de acesso
SVN
Servidor

Cliente X
Cliente Y
SVN
Servidor

checkout

Cliente X
Cliente Y
SVN
Servidor

checkout

Cliente X
Cliente Y
alteração
SVN
Servidor

checkout

Cliente X
commit
alteração

Cliente Y
SVN
Servidor

checkout

update

Cliente X
commit
alteração

Cliente Y
GIT
Servidor

Cliente X
Cliente Y
GIT
Servidor

clone

Cliente X
Cliente Y
GIT
Servidor

clone

Cliente X
Cliente Y
alteração
GIT
Servidor

clone

Cliente X
Cliente Y
alteração

add
GIT
Servidor

clone

Cliente X
Cliente Y
alteração

commit

add
GIT
Servidor

clone

Cliente X
push

Cliente Y
alteração

commit

add
GIT
Servidor

clone

pull

Cliente X
push

Cliente Y
alteração

commit

add
GIT Boas Práticas
Faça commit toda hora!!
!

Faça commit a cada funcionalidade!!
GIT Boas Práticas
Faça commit toda hora!!
!

Faça commit a cada funcionalidade!!
Isso possibilita:
- Rastreabilidade das alterações;
- Visualização da evolução do projeto;
- Usar o histórico como documentação do projeto.
GIT Boas Práticas
Não inserir comentários redundantes
ao fazer commit.

Ex.: git commit -m “Remoção da validação do cpf ”
GIT Boas Práticas
As mensagens não devem dizer apenas O QUE foi
feito, mas PORQUE foi feito.

Ex.: git commit -m “Remoção da validação do cpf devido à internacionalização
do cadastro e o cpf ser referente apenas ao Brasil”
GIT Boas Práticas
Use o histórico… a toda hora!
gitk
gitk
gitk
gitk
Jessé Cirilo Soares	

Analista de Sistemas no LEMAF/UFLA

jessecsoares@gmail.com	

@jessebodao	

linkedin.com/in/jessesoares

Git vs. SVN