Controle de versão - GIT

11
Controle de Versão Git

Transcript of Controle de versão - GIT

Page 1: Controle de versão - GIT

Controle de VersãoGit

Page 2: Controle de versão - GIT

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

Page 3: Controle de versão - GIT

Conceitos Básicos

• Checkout

• Update

• Commit

• Branch

• Tag

• Trunk

Page 4: Controle de versão - GIT

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

Page 5: Controle de versão - GIT

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

Page 6: Controle de versão - GIT

Aplicações do Git

• Linux Kernel

• Gnome Foundation

• Android

• Ruby on Rails

• GitHub (social code)

Page 7: Controle de versão - GIT

Branches

• Origem comum

• Avançam paralelamente

• Fácil integração

Page 8: Controle de versão - GIT

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

Page 9: Controle de versão - GIT

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

Page 10: Controle de versão - GIT

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)

Page 11: Controle de versão - GIT

Resumo

• O que são branches?

• Por que usar branches?

• Representação de um Branch no Git

• Como funciona o Merge