Git com o pé direito
Ou como parar de ter 10+ cópias do mesmo
projeto espalhadas pelo computador
Slide 2
Slide 2 text
Sobre mim
Desenvolvedor sênior
"full stack” no
Queremos! /
WeDemand
PHP, Python, MySQL,
MongoDB, AWS
~ 10 anos de estrada
Slide 3
Slide 3 text
Sobre o git
Slide 4
Slide 4 text
História
Linus Torvalds (criador do Linux) em 2005
Criado para substituir um software proprietário
(BitKeeper)
Curiosidade: o linux tem ~6000 desenvolvedores -
então o git é robusto!
Slide 5
Slide 5 text
Atenção!
!=
Slide 6
Slide 6 text
Esse é o git
Slide 7
Slide 7 text
Vantagens
Permite que você trabalhe numa funcionalidade nova
sem quebrar o que já está pronto
Essencial se existe mais de 1 pessoa trabalhando no
projeto
Slide 8
Slide 8 text
Utilizado na
maioria das
empresas de
desenvolvimento
Slide 9
Slide 9 text
Começando com o git
Onde colocar meu repositório?
Slide 10
Slide 10 text
GitHub
https://github.com/
Slide 11
Slide 11 text
BitBucket
https://bitbucket.org/
Slide 12
Slide 12 text
Comandos que importam
Slide 13
Slide 13 text
Obtendo o repositório
Slide 14
Slide 14 text
O que tem pra comitar?
Slide 15
Slide 15 text
O que estou comitando?
Slide 16
Slide 16 text
Adicionando arquivos
Slide 17
Slide 17 text
Commit
Slide 18
Slide 18 text
Baixar (e aplicar) commits
Slide 19
Slide 19 text
Mandar commits pro
servidor
Slide 20
Slide 20 text
– http://git-scm.com/book/en/Git-Branching-What-a-Branch-Is
“Um branch no Git é simplesmente um ponteiro
para um dos commits do repositório.”
Branch
Slide 21
Slide 21 text
Criar um branch
Slide 22
Slide 22 text
Quais são os meus
branches?
Slide 23
Slide 23 text
Mudar para um branch
Slide 24
Slide 24 text
git log
Slide 25
Slide 25 text
Avançando um pouco
Slide 26
Slide 26 text
git alias
$ git alias st status
Slide 27
Slide 27 text
git alias
Slide 28
Slide 28 text
git alias
$ git alias glog "log —all --pretty='format:
%d %Cgreen%h%Creset %an - %s' --graph"
Slide 29
Slide 29 text
git alias
Slide 30
Slide 30 text
Merge vs Rebase
Slide 31
Slide 31 text
Merge vs Rebase
Merge
• Mais simples
• Histórico "poluído"
• O git decide como juntar
seu código
Rebase
• Maior controle na
resolução de conflitos
• Histórico mais “limpo”
• Mais complexo
Slide 32
Slide 32 text
Text
http://stackoverflow.com/questions/11671668/combine-several-
commits-and-merging-as-one-commit-into-other-branches
Slide 33
Slide 33 text
Text
http://kevin.deldycke.com/2011/02/moving-git-
subtree-repository/
Slide 34
Slide 34 text
git reflog
Armazena todas as ações executadas:
Commits
Novos branches
Merges
etc.
Cuidado com ******
Evite commitar “segredos” no repositório
Segredos: senhas, chaves de acesso, etc.
Slide 45
Slide 45 text
Workflow da equipe
Defina um workflow da equipe (ex. merge vs rebase)
Padronização de nomes de branches (ex. issue #)
Para equipes maiores: git-flow http://nvie.com/posts/a-
successful-git-branching-model/
Cuidado: não crie regras demais :)
Slide 46
Slide 46 text
Text
Branches são leves
http://i.imgur.com/seDixfY.jpg
Slide 47
Slide 47 text
Master "entregável"
Mantenha o master “entregável"
Evite commitar coisas pela metade