Download - Controle de versão com GIT
Controle de versão com GIT
Paulo César M Jeveaux
@jeveaux
jeveaux.com
controlar versão de código, Batman, pra que
isso?
controlar versão de código, Batman, pra que
isso?ouch!
controlar versão de código, Batman, pra que
isso?ouch!
Robin, como você controla as alterações do seu
código?
E como você controla as versões do seu produto?
E o hitórico de tudo isso?
git• Open Source
• Criado por Linus Torvalds
• Necessidade de manter o
controle de versão do
código do Kernel do Linux
• Mantido por Junio Hamano
• Para projetos P, M, G e XG
• Sistema de controle de
versões distribuído!
git• Desenvolvimento distribuído
• Rápido!
• Branches e merges sem dor
e forma simples
• Rápido!
• Eficiente e simples
• Comunidade forte
• Rápido!
alguém usa isso?
alguém usa isso?
Linux Kernel
Perl
gnome
Android
Fedora
Debian
X.org
PostgreSQL
...muitos outros
Conceitocentralizado X distribuído
repositório
dev 1
dev 2
dev 3
dev n
• repositório único e centralizado
• commit só por usuário com permissão
centralizado
repositório
dev 1
dev 2
dev 3
dev n
• repositório único e centralizado
• commit só por usuário com permissão
históricos, commits,
branches, etc
centralizado
repositório
dev 1
dev 2
dev 3
dev n
• repositório único e centralizado
• commit só por usuário com permissão
checkout no dia N
históricos, commits,
branches, etc
centralizado
repositório
dev 1
dev 2
dev 3
dev n
• repositório único e centralizado
• commit só por usuário com permissão
checkout no dia N
checkout no dia N+1diferente do dev 1
históricos, commits,
branches, etc
centralizado
repositório
dev 1
dev 2
dev 3
dev n
• repositório único e centralizado
• commit só por usuário com permissão
checkout no dia N
checkout no dia N+1diferente do dev 1
checkout no dia N+2diferente do dev 1 e 2
históricos, commits,
branches, etc
centralizado
repositório
dev 1
dev 2
dev 3
dev n
• repositório único e centralizado
• commit só por usuário com permissão
checkout no dia N
checkout no dia N+1diferente do dev 1
checkout no dia N+2diferente do dev 1 e 2
checkout no dia N+3diferente do dev 1, 2 e 3
históricos, commits,
branches, etc
centralizado
dev 1
dev 2
dev 3
dev n
• cada cópia é um repositório completo
• histórico completo e total
• commit local {on|off}line
• commits podem ser transferidos entre repositórios
de forma simples com pull ou push
distribuído
dev 1
dev 2
dev 3
dev n
• cada cópia é um repositório completo
• histórico completo e total
• commit local {on|off}line
• commits podem ser transferidos entre repositórios
de forma simples com pull ou push
uma nova cópia pode ser feita de qualquer repositório
distribuído
dev 1
dev 2
dev 3
dev n
• cada cópia é um repositório completo
• histórico completo e total
• commit local {on|off}line
• commits podem ser transferidos entre repositórios
de forma simples com pull ou push
uma nova cópia pode ser feita de qualquer repositório
distribuído
commits podem ser transferidos por todos repositórios
você pode fazer commit de qualquer lugar, até no avião!
você pode fazer commit de qualquer lugar, até no avião!
RLY?
branches
• rápido!
• muito rápido!
• branches locais baratas
• branches também podem ser remotas (github)
• merge super poderoso
• uma branch para cada feature/história/bug/etc
histórico
logs
diffs
commits
merge
pull
push
tag
stash
index
bisect
GIT-SVN
ferramentas e utilidades
o terminal é seu amigo :)
gitk
tower
... e muitas outras ferramentas
• gitnub
• qgit
• git-gui
• tortoise-git
• ...
github
comunidade em torno de código
muitos projetos open source
serve para projetos privados
funciona! funciona muito bem!
comunidade em torno de código
muitos projetos open source
serve para projetos privados
funciona! funciona muito bem!
grátis para open source
fork de maneira fácil e rápida
facilita muito a colaboração
é o queridinho na comunidade
Ruby on Rails
jQuery
Redis
node.js
curl
CakePHP
django
mongodb
Quem usa github
Servidor GIT privado
gitorious• gratuito
• open source
• pode ser usado também online como o github, também gratuito
muitas opções
• gitosis
• codebasehq
• repo.or.cz
• gitorious
• ...
Para o alto e avante
akitaonrails.com/screencasts
dúvidas?
Referências
• git-scm.org
• github.com/guides/home
• akitaonrails.com
• “Git: controle de versão de jeito certo” - por Arthur Zapparoli
Controle de versão com GIT
Paulo César M Jeveaux
@jeveaux
jeveaux.com