O documento explica o que é o Git e como ele pode ser usado para controle de versão de código de forma distribuída. O Git foi criado por Linus Torvalds para manter o controle de versão do kernel do Linux e permite que desenvolvedores trabalhem de forma colaborativa em um projeto de software de maneira distribuída através de commits locais e branches. O Git tornou-se uma ferramenta popular entre a comunidade de código aberto e é amplamente utilizado em muitos projetos e plataformas importantes.
5. controlar versão
de código, Batman, pra que
ouch! isso?
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?
6. • Open Source
• Criado por Linus Torvalds
git
• 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!
7. • Desenvolvimento distribuído
• Rápido!
git • Branches e merges sem dor
e forma simples
• Rápido!
• Eficiente e simples
• Comunidade forte
• Rápido!
11. centralizado
• repositório único e centralizado
• commit só por usuário com permissão
dev n
repositório
dev 3
dev 2
dev 1
12. centralizado
• repositório único e centralizado
• commit só por usuário com permissão
dev n
repositório
dev 3
históricos,
commits, dev 2
branches, etc
dev 1
13. centralizado
• repositório único e centralizado
• commit só por usuário com permissão
dev n
repositório
dev 3
históricos,
commits, dev 2
branches, etc
dev 1
checkout no dia N
14. centralizado
• repositório único e centralizado
• commit só por usuário com permissão
dev n
repositório
dev 3
históricos,
commits, dev 2
branches, etc
checkout no dia N+1
dev 1
diferente do dev 1
checkout no dia N
15. centralizado
• repositório único e centralizado
• commit só por usuário com permissão
dev n
repositório
dev 3
checkout no dia N+2
históricos,
diferente do dev 1 e 2
commits, dev 2
branches, etc
checkout no dia N+1
dev 1
diferente do dev 1
checkout no dia N
16. centralizado
• repositório único e centralizado
• commit só por usuário com permissão
dev n
repositório checkout no dia N+3
diferente do dev 1, 2 e 3
dev 3
checkout no dia N+2
históricos,
diferente do dev 1 e 2
commits, dev 2
branches, etc
checkout no dia N+1
dev 1
diferente do dev 1
checkout no dia N
17. distribuído
• 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
dev 3
dev 1
dev n
dev 2
18. distribuído
• 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
dev 3
dev 1
dev n uma nova cópia pode ser
feita de qualquer repositório
dev 2
19. distribuído
• 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
dev 3
dev 1 commits podem ser transferidos
por todos repositórios
dev n uma nova cópia pode ser
feita de qualquer repositório
dev 2
23. • 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
24. histórico merge
logs pull
diffs push
commits tag
33. comunidade em
torno de código
muitos projetos
open source
serve para
projetos privados
funciona! funciona
muito bem!
34. grátis para open comunidade em
source torno de código
fork de maneira muitos projetos
fácil e rápida open source
facilita muito a serve para
colaboração projetos privados
é o queridinho na funciona! funciona
comunidade muito bem!
35. reddit
Ruby on Rails
curl
jQuery
CakePHP
Redis
django
node.js
mongodb
Quem usa
github
36. Servidor GIT privado
• gratuito
gitorious • open source
• pode ser usado também
online como o github,
também gratuito