Controle deVersã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
Conceitos Básicos
• Checkout
• Update
• Commit
• Branch
• Tag
• Trunk
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
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
Aplicações do Git
• Linux Kernel
• Gnome Foundation
• Android
• Ruby on Rails
• GitHub (social code)
Branches
• Origem comum
• Avançam paralelamente
• Fácil integração
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
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
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)
Resumo
• O que são branches?
• Por que usar branches?
• Representação de um Branch no Git
• Como funciona o Merge

Controle de versão - GIT

  • 1.
  • 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
  • 3.
    Conceitos Básicos • Checkout •Update • Commit • Branch • Tag • Trunk
  • 4.
    Características Sistema de Controlede 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ãosnapshots • 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)
  • 7.
    Branches • Origem comum •Avançam paralelamente • Fácil integração
  • 8.
    Branches • Vantagens: Repriorização dependê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 quesão branches? • Por que usar branches? • Representação de um Branch no Git • Como funciona o Merge