O documento apresenta os conceitos básicos de controle de versão usando o GIT. Ele explica o que é um repositório, como funciona o fluxo de trabalho com o index e commits locais e remotos, a importância dos comentários de commit e como identificar alterações entre versões.
3. O que é Controle de Versão ?
• É um software que permite controlar e
O que é ? guardar diferentes versões de um mesmo
arquivo
Para que • Para facilitar o desenvolvimento de
software em equipes dispersas
usar ? • Para controlar versões do código fonte
Como • Instalar o servidor e os clientes
• Editar localmente os arquivos
usar ? • Enviar as alterações para o repositório
5/15/2012 Alexandre Rocha Lima e Marcondes
4. O que é um repositório ?
• É como um banco de dados especializado
O que é ? em guardar arquivos e suas diferentes
versões
Como • O GIT cria uma árvore que contem a
estrutura dos arquivos e pastas
funciona ? versionados
Onde • O GIT é distribuído
• Tem repositórios em todas as máquinas
fica ? de desenvolvimento e no servidor central
5/15/2012 Alexandre Rocha Lima e Marcondes
5. História
Criado em
3 de Abril Motivação
O uso do Bitkeeper como
de 2005 servidor de controle de
Linus Torvalds (o mesmo versões distribuído com
criador do Linux) licença gratuita para os
desenvolvedores do kernel
do Linux foi revogado
Linus Torvalds decidiu
fazer ele mesmo o
dele, pois os outros não
tinham os recursos que ele
queria
5/15/2012 Alexandre Rocha Lima e Marcondes
6. 2005
Alcançou a
Merge de performance
múltiplos desejada
Self-hosting branches • 29 de Abril
• 7 de Abril • 18 de Abril
Anúncio
• 6 de Abril
Criação
• 3 de Abril
5/15/2012 Alexandre Rocha Lima e Marcondes
7. Critérios
Linus Torvals buscou critérios de
implementação
Aprender com o Suportar um Ter proteções
Não seguir a
CVS e fazer workflow fortes contra Ter uma
linha do SVN
sempre o distribuído corrupção de performance
(“CVS done
oposto em caso como o dados, acidental muito alta
right”)
de dúvida Bitkeeper ou maliciosa
Não foi
projetado como
um clone, mas
inspirado no
Bitkeeper
5/15/2012 Alexandre Rocha Lima e Marcondes
8. Instalação
• Windows
– Putty
– MsysGIT
– TortoiseGIT 32 Bits e 64 Bits
• Linux
– $ apt-get install git ssh openssh
5/15/2012 Alexandre Rocha Lima e Marcondes
9. Os Menus
Envia para o
Pega do repositório
repositório remoto
remoto
Lista as
O mesmo Verifica todas alterações
que alterações locais
pull + push em arquivos
Une duas
Troca a versões
árvore usada diferentes
Coloca
Cria uma arquivos no
etiqueta de Index
versão
Envia para o
repositório
local
5/15/2012 Alexandre Rocha Lima e Marcondes
11. Conceito
push
add commit push
release
Repositório Repositório
Alterações Index Distribuição
Local Remoto
Edições e Comando: Comando: Comando: Comando:
gravações git add git commit git push git push
diretamente Melhorias Empacote Compartilhe release
nos arquivos em relação à cada versão o seu trabalho Versão
Grave com versão coerente com a equipe final que
freqüência, anterior Faça testes pelo menos pode ser
pois a Adicone simples para uma vez a cada entregue
máquina cada garantir a dois dias diretamente
pode dar alteração integridade ao cliente
problemas mais arrojada
5/15/2012 Alexandre Rocha Lima e Marcondes
12. Conceito
push
add commit push
release
Repositório Repositório
Alterações Index Distribuição
Local Remoto
Privado Desenvolvimento Volátil
Cliente
Produção
Estável
5/15/2012 Alexandre Rocha Lima e Marcondes
13. Dia-a-dia com o GIT
Edição de
arquivos e Envio do Index
adição no para o
Index repositório local
com o commit
Sincronismo
com Synch ou
um pull
seguido de um
push
5/15/2012 Alexandre Rocha Lima e Marcondes
18. Comentando BUGs
BUG-1234 : Correção na comunicação serial
* Limpeza de arquivos e identação melhorada
5/15/2012 Alexandre Rocha Lima e Marcondes
19. Comentando Novos Recursos
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
5/15/2012 Alexandre Rocha Lima e Marcondes
20. Comentando Código que não Compila
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
5/15/2012 Alexandre Rocha Lima e Marcondes
21. Comentando Alterações na Versão
DLL 2.27.02
BUG-123 , BUG-345 , BUG-1234
FEATURE-1234 , FEATURE-234 , FEATURE 456
5/15/2012 Alexandre Rocha Lima e Marcondes
22. O Log de Alterações
O comentário do commit
é importantíssimo !
Não se esqueça dele
pois ele aparece no Log
5/15/2012 Alexandre Rocha Lima e Marcondes
23. Blame – Quem mudou o que ?
Configure seu nome
no menu Settings
para ter propriedade
de parte do código
5/15/2012 Alexandre Rocha Lima e Marcondes
24. Comparação Entre Versões
Versões são
numeradas por um
Hash SHA1
5/15/2012 Alexandre Rocha Lima e Marcondes
25. 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