Slide 1

Slide 1 text

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.

Slide 35

Slide 35 text

git reflog

Slide 36

Slide 36 text

git reflog

Slide 37

Slide 37 text

GUIs Simplificando a vida

Slide 38

Slide 38 text

GitHub GUI https://mac.github.com/ https://windows.github.com

Slide 39

Slide 39 text

Tower http://www.git-tower.com

Slide 40

Slide 40 text

Source Tree http://www.sourcetreeapp.com

Slide 41

Slide 41 text

Dicas

Slide 42

Slide 42 text

Commits

Slide 43

Slide 43 text

Text http://xkcd.com/1296/

Slide 44

Slide 44 text

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

Slide 48

Slide 48 text

Text Pratique! https://try.github.com/

Slide 49

Slide 49 text

Links http://nvie.com/posts/a-successful-git-branching- model/ https://marklodato.github.io/visual-git-guide/index- en.html https://try.github.com/ http://www.git-tower.com/blog/git-cheat-sheet-detail- pt/

Slide 50

Slide 50 text

Obrigado! @rcmachado rcmachado https://speakerdeck.com/rcmachado