4. Sumário
Introdução
terça-feira, 21 de julho de 2009
5. Sumário
Introdução
Mudando de Paradigma
terça-feira, 21 de julho de 2009
6. Sumário
Introdução
Mudando de Paradigma
Core GIT
terça-feira, 21 de julho de 2009
7. Sumário
Introdução
Mudando de Paradigma
Core GIT
Fluxos de Trabalho em Equipe
terça-feira, 21 de julho de 2009
8. Sumário
Introdução
Mudando de Paradigma
Core GIT
Fluxos de Trabalho em Equipe
Recuperação de Desastres
terça-feira, 21 de julho de 2009
9. Sumário
Introdução
Mudando de Paradigma
Core GIT
Fluxos de Trabalho em Equipe
Recuperação de Desastres
Boas Práticas
terça-feira, 21 de julho de 2009
12. Introdução
BK
terça-feira, 21 de julho de 2009
13. Introdução
BK
Torvalds
terça-feira, 21 de julho de 2009
14. Introdução
BK
Torvalds
Kernel
terça-feira, 21 de julho de 2009
15. Introdução
BK
Torvalds
Kernel
~45 dias do início à
produção!
terça-feira, 21 de julho de 2009
16. Introdução
BK
Torvalds
Kernel
~45 dias do início à
produção!
Performático
terça-feira, 21 de julho de 2009
17. CVCS
Há um ponto central, onde tudo acontece
terça-feira, 21 de julho de 2009
18. Repositório
1 2 3 4
A B C D
CVCS
Há um ponto central, onde tudo acontece
terça-feira, 21 de julho de 2009
19. DVCS
Não há ponto central
(imposto pela ferramenta)
terça-feira, 21 de julho de 2009
20. Repositório? A E B C D F G
José
A B C D F
João
A E B C D
A E B C D F G
Felipe
DVCS ?
Não há ponto central
(imposto pela ferramenta)
terça-feira, 21 de julho de 2009
26. Commits Pequenos
Mas o meu código ainda está quebrado!
terça-feira, 21 de julho de 2009
27. Commits Pequenos
Mas o meu código ainda está quebrado!
Ninguém vai ficar sabendo!
terça-feira, 21 de julho de 2009
28. Commits Pequenos
Mas o meu código ainda está quebrado!
Ninguém vai ficar sabendo!
E você vai começar a perceber o que está
fazendo!
terça-feira, 21 de julho de 2009
30. GIT 101
Conceitos básicos
terça-feira, 21 de julho de 2009
31. Ao invés de se preocupar
em armazenar o estado
de uma peça, ele
armazena sempre o
estado do tabuleiro
inteiro
terça-feira, 21 de julho de 2009
32. Ao invés de se preocupar
em armazenar o estado
de uma peça, ele
armazena sempre o
estado do tabuleiro
inteiro
Versionamento de Conteúdo
terça-feira, 21 de julho de 2009
33. Ao invés de se preocupar
em armazenar o estado
de uma peça, ele
armazena sempre o
estado do tabuleiro
inteiro
Versionamento de Conteúdo
O Git versiona o conteudo da árvore inteira
terça-feira, 21 de julho de 2009
40. Commit
Coloca tudo que está
no indice dentro do
repositório
terça-feira, 21 de julho de 2009
41. Commit
Coloca tudo que está
no indice dentro do
repositório
São indicados por um
hash SHA único
terça-feira, 21 de julho de 2009
42. Repositório
Grafo Acíclico Dirigido
terça-feira, 21 de julho de 2009
43. Branches
Simples ponteiros dentro do grafo
terça-feira, 21 de julho de 2009
44. GIT 102
Conhecendo mais a fundo
terça-feira, 21 de julho de 2009
45. Tópicos
Pesquisando
Fazendo Merges I
Mudando a História
Fazendo Merges II
Pedindo tempo
terça-feira, 21 de julho de 2009
46. Pesquisando
“Em que arquivo ficava aquele método?”
“Onde eu defini aquela task do rake?”
terça-feira, 21 de julho de 2009
47. git log -S'def index' --pickaxe-all
terça-feira, 21 de julho de 2009
48. Fazendo Merges - I
Não-fast-forward
terça-feira, 21 de julho de 2009
49. Mudando a História
“Se você pensa que eu vou fazer esse merge,
pode tirar o cavalinho da chuva!”
terça-feira, 21 de julho de 2009
50. Fazendo Merges - II
Primeiro fazemos um rebase
terça-feira, 21 de julho de 2009
51. Fazendo Merges - II
Em seguida fazemos o merge mesmo
Ele só vai mover o ponteiro do branch
terça-feira, 21 de julho de 2009
52. Pedindo tempo
“Corrija um bug para mim no branch de produção
agora!”
“Mas eu estava fazendo outra coisa!”
terça-feira, 21 de julho de 2009
53. GIT 103
Psssst!
terça-feira, 21 de julho de 2009
54. Tópicos
Cherry-pick
Cherry
Bisect
Managing Remotes
Submódulos
terça-feira, 21 de julho de 2009
55. Cherry-pick
Essa correção tem que ir para a produção
imediatamente!
Mas ela está lá no meio das minhas coisas da versão
que ainda não saiu!
git cherry-pick pega um commit de qualquer lugar da
árvore e tenta aplicá-lo no branch atual.
terça-feira, 21 de julho de 2009
56. Cherry
Putz, corrigi esse bug na produção mês passado!
Você não aplicou a correção no desenvolvimento?
git cherry faz uma busca pelo conteúdo dos
commits para detectar quais não foram aplicados
em um determinado branch
terça-feira, 21 de julho de 2009
57. Bisect
“Mas eu já tinha
corrigido esse bug,
quem foi o......”
Pesquisa qual o
commit introduziu
determinado bug
terça-feira, 21 de julho de 2009
58. Gerenciando Remotos
git remote add <nome> <url>
git fetch <nome>
git push <nome> <branch>
terça-feira, 21 de julho de 2009
59. Submódulos
Uma maneira eficiente de agrupar projetos em
repositórios diferentes
Especialmente útil para projetos rails, onde os plugins
costumam ser hospedados no github
git submodule add <url> destino
terça-feira, 21 de julho de 2009
61. Fluxos de trabalho em
Equipe
Servidor (gitosis)
José Vera
João
terça-feira, 21 de julho de 2009
62. Fluxos de trabalho em
Equipe
Servidor (gitosis)
Branches
Remotos
José Vera
João
terça-feira, 21 de julho de 2009
63. Fluxos de trabalho em
Equipe
Servidor (gitosis)
Branches
Remotos
José Vera
João
Branches locais
terça-feira, 21 de julho de 2009
64. Recuperando Desastres
O que fazer quando as coisas não vão indo bem
terça-feira, 21 de julho de 2009
65. Tópicos
Desfazendo alterações
Alterando a história
terça-feira, 21 de julho de 2009
66. Desfazendo alterações
git reset
git reset --mixed
git reset --hard
terça-feira, 21 de julho de 2009
67. Alterando a história
Commit indesejado?
Quer unificar commits?
Quer alterar a
mensagem do commit?
git rebase -i
terça-feira, 21 de julho de 2009
68. Dicas
git format-patch / git am
prepara commits para serem transmitidos por email
git bundle
transporte de branches em arquivo
git gc
limpeza do repositório (Garbage Collector)
git log --graph --oneline
visualização da árvore de commits no console
terça-feira, 21 de julho de 2009
72. Créditos / Bibliografia
InfoQ
The OOPS list
http://betterexplained.com
http://www.flickr.com/photos/cuppini/3211910657/sizes/l/
http://www.flickr.com/photos/denverjeffrey/2561885967/sizes/l/
http://www.flickr.com/photos/dianafayt/2314973004/sizes/l/
http://www.newsgroper.com/files/post_images/back%20to%20the%20future.jpeg
http://www.flickr.com/photos/nonoq8/2711265848/sizes/o/
http://www.flickr.com/photos/cc_chapman/498250339/sizes/l/
terça-feira, 21 de julho de 2009