25
Por Alexandre Rocha Lima e Marcondes Por Alexandre Rocha Lima e Marcondes Controle de Versão Usando o GIT

Controle de versão com o git

Embed Size (px)

Citation preview

Page 1: Controle de versão com o git

Por Alexandre Rocha Lima e MarcondesPor Alexandre Rocha Lima e Marcondes

Controle de Versão

Usando o GIT

Page 2: Controle de versão com o git

Objetivos da Apresentação

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 3: Controle de versão com o git

O que é Controle de Versão ?

• É um software que permite controlar e guardar diferentes versões de um mesmo arquivo

O que é ?

• Para facilitar o desenvolvimento de software em equipes dispersas

• Para controlar versões do código fonte

Para que usar ?

• Instalar o servidor e os clientes

• Editar localmente os arquivos

• Enviar as alterações para o repositório

Como usar ?

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 4: Controle de versão com o git

O que é um repositório ?

• É como um banco de dados especializado em guardar arquivos e suas diferentes versões

O que é ?

• O GIT cria uma árvore que contem a estrutura dos arquivos e pastas versionados

Como funciona ?

• O GIT é distribuído

• Tem repositórios em todas as máquinas de desenvolvimento e no servidor central

Onde fica ?

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 5: Controle de versão com o git

História

Linus Torvalds (o mesmocriador do Linux)

Criado em3 de Abrilde 2005

O uso do Bitkeeper comoservidor de controle de versões distribuído com licença gratuita para osdesenvolvedores do kernel do Linux foi revogado

Linus Torvalds decidiufazer ele mesmo o dele, pois os outros nãotinham os recursos que elequeria

Motivação

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 6: Controle de versão com o git

2005

Criação

• 3 de Abril

Anúncio

• 6 de Abril

Self-hosting

• 7 de Abril

Merge de múltiplos branches

• 18 de Abril

Alcançou a performance desejada

• 29 de Abril

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 7: Controle de versão com o git

Critérios

Linus Torvals buscou critérios de implementação

Aprender com o CVS e fazersempre o

oposto em casode dúvida

Não seguir a linha do SVN (“CVS done

right”)

Suportar um workflow

distribuídocomo o

Bitkeeper

Não foiprojetado comoum clone, masinspirado no

Bitkeeper

Ter proteçõesfortes contra corrupção de

dados, acidentalou maliciosa

Ter umaperformance

muito alta

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 9: Controle de versão com o git

Os Menus

5/15/2012 Alexandre Rocha Lima e Marcondes

O mesmo que

pull + push

Envia para o repositório

local

Pega do repositório

remoto

Verifica todas alterações

em arquivos

Une duas versões

diferentes

Envia para o repositório

remoto

Lista as alterações

locais

Coloca arquivos no

Index

Cria uma etiqueta de

versão

Troca a árvore usada

Page 10: Controle de versão com o git

Transporte de dados no GIT

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 11: Controle de versão com o git

Conceito

Alterações Index DistribuiçãoRepositório

RemotoRepositório

Local

Edições e gravações diretamente nos arquivosGrave com freqüência, pois a máquina pode dar problemas

Comando:git addMelhoriasem relação àversãoanteriorAdiconecadaalteraçãomais arrojada

Comando: git commitEmpacote cada versão coerenteFaça testes simples para garantir a integridade

Comando: git pushCompartilhe o seu trabalho com a equipe pelo menos uma vez a cada dois dias

Comando: git pushreleaseVersão final que pode ser entregue diretamente ao cliente

add commit pushpush

release

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 12: Controle de versão com o git

Conceito

Alterações Index DistribuiçãoRepositório

RemotoRepositório

Local

add commit pushpush

release

5/15/2012 Alexandre Rocha Lima e Marcondes

Clie

nte

Privad

oD

ese

nvo

lvime

nto

Vo

látil

Pro

du

çãoEstáve

l

Page 13: Controle de versão com o git

Dia-a-dia com o GIT

5/15/2012 Alexandre Rocha Lima e Marcondes

Edição de arquivos e adição no

Index

Envio do Indexpara o

repositório local com o commit

Sincronismo com Synch ou

um pullseguido de um

push

Page 14: Controle de versão com o git

O Index

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 15: Controle de versão com o git

O Index

5/15/2012 Alexandre Rocha Lima e Marcondes

Os arquivos marcados

são adicionados

ao Indexpelo

TortoiseGITquando se

faz um commit

Page 16: Controle de versão com o git

O Repositório Local

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 17: Controle de versão com o git

Comentários em Commits

5/15/2012 Alexandre Rocha Lima e Marcondes

Page 18: Controle de versão com o git

Comentando BUGs

5/15/2012 Alexandre Rocha Lima e Marcondes

BUG-1234 : Correção na comunicação serial

* Limpeza de arquivos e identação melhorada

Page 19: Controle de versão com o git

Comentando Novos Recursos

5/15/2012 Alexandre Rocha Lima e Marcondes

FEATURE-1234 : Comunicação com dispositivo XYZ

* Separação da estrutura de comunicação em funções diferentes* Envio de dados na serial com checksum inteligente* Troca de nome das funções internas

Page 20: Controle de versão com o git

Comentando Código que não Compila

5/15/2012 Alexandre Rocha Lima e Marcondes

BROKEN : Preparação para inclusão da funcionalidade FEATURE-1234

* Funções de suporte* Refactoring da parte de leitura de arquivo* Teste de comunicação

Page 21: Controle de versão com o git

Comentando Alterações na Versão

5/15/2012 Alexandre Rocha Lima e Marcondes

DLL 2.27.02

BUG-123 , BUG-345 , BUG-1234 FEATURE-1234 , FEATURE-234 , FEATURE 456

Page 22: Controle de versão com o git

O Log de Alterações

5/15/2012 Alexandre Rocha Lima e Marcondes

O comentário do commité importantíssimo !

Não se esqueça dele pois ele aparece no Log

Page 23: Controle de versão com o git

Blame – Quem mudou o que ?

5/15/2012 Alexandre Rocha Lima e Marcondes

Configure seu nome no menu Settings

para ter propriedade de parte do código

Page 24: Controle de versão com o git

Comparação Entre Versões

5/15/2012 Alexandre Rocha Lima e Marcondes

Versões são numeradas por um

Hash SHA1

Page 25: Controle de versão com o git

Resumo

Use o Index a seu favor (com um add), ele pode guardar estados intermediários

Guarde diariamente seu trabalho no repositório local com um commit

Sempre comente seus commits de forma adequada

Teste bem seu trabalho antes de fazer um push

Identifique os commits quebrados com BROKEN

Envie seu trabalho freqüentemente, mas sempre faça pull antes para integrar seu trabalho com possíveis alterações de outros colaboradores

5/15/2012 Alexandre Rocha Lima e Marcondes