2. Sobre o Git
• Criado em 2005
• Software distribuído
• Controle de versionamento de documento
• O que mudou? Quando mudou? Quem mudou?
• Auxilia no trabalho em equipe e no acesso ao código
• Auxilia na entrega parcial do produto
4. Características
Sistema de Controle de Versão Distribuído (DVCS)
• Desenvolvimento distribuído ou local
• Revisões incrementais
• Auto merge eficiente
• Chave publica para autenticação
5. Características
• Dados são snapshots
• Possui referência para os
commits
• “Linka” o commit anterior
Git armazena dados como snapshots do projeto ao longo do tempo
6. Aplicações do Git
• Linux Kernel
• Gnome Foundation
• Android
• Ruby on Rails
• GitHub (social code)
8. Branches
• Vantagens:
Repriorização de pendências
Organização do fluxo de trabalho
Branch para produção e para desenvolvimento
“Versiona” experimentos
Se ocorrer tudo certo vai para o trunk, caso contrário é descartado
9. Representação de branches
• Ponteiro para um commit
• Vários branches para o mesmo
commit
Nenhuma cópia é feita
Referências são criadas
• Só um branch está ativo (HEAD)
• Novos commits avançam o HEAD
• Podemos atribuir um HEAD a
outro branch
master
branch1
branch2
Commit inicial
(HEAD)
branch2
(HEAD)
Segundo commit
Terceiro commit
(HEAD)
• Um novo commit avança
este branch em paralelo
• Ramificação paralela
branch1
(HEAD)
Commit paralelo
branch2
10. Merge
• Agregação de
ramificações
• Unifica branches
com históricos
distintos
• Cria um novo commit
com mais de um
“pai”
• Avança o HEAD
commit inicial
commi1
commit2
(HEAD)
branch1
master
Merge (branch1 e o master)
master
(HEAD)
11. Resumo
• O que são branches?
• Por que usar branches?
• Representação de um Branch no Git
• Como funciona o Merge