Download - Desvendando O Git
Desvendando o GITDouglas Campos (qmx)[email protected]
http://qmx.me
terça-feira, 21 de julho de 2009
terça-feira, 21 de julho de 2009
Sumário
terça-feira, 21 de julho de 2009
Introdução
Sumário
terça-feira, 21 de julho de 2009
Introdução
Mudando de Paradigma
Sumário
terça-feira, 21 de julho de 2009
Introdução
Mudando de Paradigma
Core GIT
Sumário
terça-feira, 21 de julho de 2009
Introdução
Mudando de Paradigma
Core GIT
Fluxos de Trabalho em Equipe
Sumário
terça-feira, 21 de julho de 2009
Introdução
Mudando de Paradigma
Core GIT
Fluxos de Trabalho em Equipe
Recuperação de Desastres
Sumário
terça-feira, 21 de julho de 2009
Introdução
Mudando de Paradigma
Core GIT
Fluxos de Trabalho em Equipe
Recuperação de Desastres
Boas Práticas
Sumário
terça-feira, 21 de julho de 2009
terça-feira, 21 de julho de 2009
Introdução
terça-feira, 21 de julho de 2009
Introdução
BK
terça-feira, 21 de julho de 2009
Introdução
BK
Torvalds
terça-feira, 21 de julho de 2009
Introdução
BK
Torvalds
Kernel
terça-feira, 21 de julho de 2009
Introdução
BK
Torvalds
Kernel
~45 dias do início à produção!
terça-feira, 21 de julho de 2009
Introdução
BK
Torvalds
Kernel
~45 dias do início à produção!
Performático
terça-feira, 21 de julho de 2009
CVCSHá um ponto central, onde tudo acontece
terça-feira, 21 de julho de 2009
CVCSHá um ponto central, onde tudo acontece
Repositório
A
1
B
2
C
3
D
4
terça-feira, 21 de julho de 2009
DVCSNão há ponto central(imposto pela ferramenta)
terça-feira, 21 de julho de 2009
DVCSNão há ponto central(imposto pela ferramenta)
A B C D F
José
A B C DE F G
Felipe
A B C DE
João
?
A B C DE F GRepositório?
terça-feira, 21 de julho de 2009
Mudança de Paradigma
terça-feira, 21 de julho de 2009
Commits Locais
terça-feira, 21 de julho de 2009
Commits Locais-Tem certeza?
terça-feira, 21 de julho de 2009
Commits Locais-Tem certeza?
-Bom, se você quer descobrir que cometeu um erro depois de 200 linhas de código....
terça-feira, 21 de julho de 2009
Commits Pequenos
terça-feira, 21 de julho de 2009
Commits PequenosMas o meu código ainda está quebrado!
terça-feira, 21 de julho de 2009
Commits PequenosMas o meu código ainda está quebrado!
Ninguém vai ficar sabendo!
terça-feira, 21 de julho de 2009
Commits PequenosMas 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
GIT 101
terça-feira, 21 de julho de 2009
Conceitos básicos
GIT 101
terça-feira, 21 de julho de 2009
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
Versionamento de Conteúdo
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
Versionamento de ConteúdoO Git versiona o conteudo da árvore inteira
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
terça-feira, 21 de julho de 2009
Uma pilha de alterações
terça-feira, 21 de julho de 2009
Uma pilha de alterações
Um commit não é nada mais do que as diferenças aplicadas à árvore de código
terça-feira, 21 de julho de 2009
O ÍndiceTira um “snapshot” seletivo dos objetos da árvore
terça-feira, 21 de julho de 2009
O ÍndiceTira um “snapshot” seletivo dos objetos da árvore
Meus Arquivos
Índice Repositóriogit add git commit
terça-feira, 21 de julho de 2009
Commit
terça-feira, 21 de julho de 2009
Commit
Coloca tudo que está no indice dentro do repositório
terça-feira, 21 de julho de 2009
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
RepositórioGrafo Acíclico Dirigido
terça-feira, 21 de julho de 2009
BranchesSimples ponteiros dentro do grafo
terça-feira, 21 de julho de 2009
GIT 102Conhecendo mais a fundo
terça-feira, 21 de julho de 2009
Tópicos
Pesquisando
Fazendo Merges I
Mudando a História
Fazendo Merges II
Pedindo tempo
terça-feira, 21 de julho de 2009
Pesquisando“Em que arquivo ficava aquele método?”“Onde eu defini aquela task do rake?”
terça-feira, 21 de julho de 2009
git log -S'def index' --pickaxe-all
terça-feira, 21 de julho de 2009
Fazendo Merges - INão-fast-forward
terça-feira, 21 de julho de 2009
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
Fazendo Merges - IIPrimeiro fazemos um rebase
terça-feira, 21 de julho de 2009
Fazendo Merges - IIEm seguida fazemos o merge mesmoEle só vai mover o ponteiro do branch
terça-feira, 21 de julho de 2009
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
GIT 103Psssst!
terça-feira, 21 de julho de 2009
Tópicos
Cherry-pick
Cherry
Bisect
Managing Remotes
Submódulos
terça-feira, 21 de julho de 2009
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
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
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
Gerenciando Remotos
git remote add <nome> <url>
git fetch <nome>
git push <nome> <branch>
terça-feira, 21 de julho de 2009
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
Fluxos de trabalho em Equipe
terça-feira, 21 de julho de 2009
Fluxos de trabalho em Equipe
Servidor (gitosis)
João
José Vera
terça-feira, 21 de julho de 2009
Fluxos de trabalho em Equipe
Branches Remotos
Servidor (gitosis)
João
José Vera
terça-feira, 21 de julho de 2009
Fluxos de trabalho em Equipe
Branches locais
Branches Remotos
Servidor (gitosis)
João
José Vera
terça-feira, 21 de julho de 2009
Recuperando DesastresO que fazer quando as coisas não vão indo bem
terça-feira, 21 de julho de 2009
Tópicos
Desfazendo alterações
Alterando a história
terça-feira, 21 de julho de 2009
Desfazendo alterações
git reset
git reset --mixed
git reset --hard
terça-feira, 21 de julho de 2009
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
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
git log --oneline --graph
terça-feira, 21 de julho de 2009
terça-feira, 21 de julho de 2009
Obrigado!
terça-feira, 21 de julho de 2009
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