git para quem gosta de git

57
Git para quem gosta de git ou não Eduardo Bohrer http://about.me/nbluis

Upload: eduardo-bohrer

Post on 01-Jul-2015

1.247 views

Category:

Software


1 download

DESCRIPTION

Workshop apresentado na uMov.me sobre GIT. Básico e avançado. História, exemplos, commits, branchs, merges, remote, stash, bisect, apply, diff, reset, tagging, etc.

TRANSCRIPT

Page 1: Git para quem gosta de git

Git para quem gosta de gitou não

Eduardo Bohrerhttp://about.me/nbluis

Page 2: Git para quem gosta de git

História

Page 3: Git para quem gosta de git

Kernel em números

9 repositórios oficiais com suporte ativo

Page 4: Git para quem gosta de git

Kernel em números

★ 17+ milhões de linhas de código★ 9700+ desenvolvedores (desde o inicio do

git)★ 200+ empresas envolvidas atualmente★ Média de 9 commits por hora

http://www.cnet.com/news/linux-development-by-the-numbers-big-and-getting-bigger/http://royal.pingdom.com/2012/04/16/linux-kernel-development-numbers/

Page 5: Git para quem gosta de git

Eu prefiro um tallball

SVN Slogan = CSV Done Right

Page 6: Git para quem gosta de git

Um dia de fúria de Linux Torvalds

There is no way to do cvs right. (Linus Torvalds)

Page 7: Git para quem gosta de git

Trabalho remoto, independente, offline

SSL

Rápido

Compressão

Histórico local

Branchs locais

Tags locais

Working tree local

Commits locais

Page 8: Git para quem gosta de git

Github

Page 9: Git para quem gosta de git

Chega de mimimi

Page 10: Git para quem gosta de git

Um commit no GIT

Pasta raiz

Sub-pasta

Arquivo no raiz

Arquivo na sub-pasta

Page 11: Git para quem gosta de git

Um commit no GIT

git commit

Page 12: Git para quem gosta de git

Um commit no GITcommit: c1---------------------parent: nulltree: Pasta raizauthor: Bohrer

tree: Pasta Raiz-----------------------------tree: Sub-pastablob: Arquivo no Raiz

blob: Arquivo no Raiz

tree: bcdblob: Arquivo na sub-pasta

tree: Sub-pasta-------------------------------------blob: Arquivo na sub-pasta

Page 13: Git para quem gosta de git

Outro commit

Mudei um arquivogit commit

Page 14: Git para quem gosta de git

Outro commitcommit: c2---------------------parent: c1tree: Pasta raizauthor: Bohrer

tree: Pasta Raiz-----------------------------tree: Sub-pastablob: Arquivo no Raiz

blob: Arquivo no Raiz

commit: c1---------------------parent: nulltree: Pasta raizauthor: Bohrer

tree: Pasta Raiz-----------------------------tree: Sub-pastablob: Arquivo no Raiz

blob: Arquivo no Raiz

tree: bcdblob: Arquivo na sub-pasta

tree: Sub-pasta-------------------------------------blob: Arquivo na sub-pasta

Page 15: Git para quem gosta de git

Working tree

c1master* c2 c3 c4 c5

Page 16: Git para quem gosta de git

Forks e Branches

master* c2 c3 c4 c5

work c2 c3 c4 c5

b2 c4 c5

c1

Page 17: Git para quem gosta de git

Uma linda e maravilhosa arvore!

Page 18: Git para quem gosta de git

Mas o SVN também faz

Page 19: Git para quem gosta de git

Esqueça o que aprendeu sobre VCS

Branchs são legaisMerges também (as vezes)

Page 20: Git para quem gosta de git

Fork e branch

git branch workgit checkout work

Page 21: Git para quem gosta de git

Fork e Branch

master c1

work*

c2

Page 22: Git para quem gosta de git

Fork e Branch

master c2

work* c3 c4

c1

Page 23: Git para quem gosta de git

Merge

Page 24: Git para quem gosta de git

Estrategias de merge

● Fast forward● Recursive● Octopus● Outros (mais complexos)

Page 25: Git para quem gosta de git

Merge

git checkout mastergit merge work

Page 26: Git para quem gosta de git

Fast forward

master* c2

work c3 c4

c1Não há nada a resolver! :)

Page 27: Git para quem gosta de git

Fast forward

c2

master*work c3 c4

c1Não há nada a resolver! :)

Page 28: Git para quem gosta de git

Recursive merge

master c2 c3

work c3 c4

c1 c4 Commit nas duas. :(

Page 29: Git para quem gosta de git

Recursive merge

master* c2 c3

work c3 c4

c1 c4 c5

Page 30: Git para quem gosta de git

Octopus merge

master* c2

c5

work c2 c3

b2 c4

c1

Page 31: Git para quem gosta de git

Octopus merge

master* c2

c5

work c2 c3

b2 c4

c1 c5

Page 32: Git para quem gosta de git

Mas o SVN também faz

Page 33: Git para quem gosta de git

Podando a árvore

git rebase

Page 34: Git para quem gosta de git

Git rebase

master c2

work* c3 c4

c1

Page 35: Git para quem gosta de git

Git rebase

master

c2

work*

c3 c4c1

Page 36: Git para quem gosta de git

Mais ferramentas

Muito mais

Page 37: Git para quem gosta de git

Git remote

git remoteSó mais um ramo

Page 38: Git para quem gosta de git

Git remote

origin/master c2

master* c3 c4

c1

Page 39: Git para quem gosta de git

Git pull

git pull(git fetch + git merge)

Page 40: Git para quem gosta de git

Git push

git push origin master

Page 41: Git para quem gosta de git

Git log

git log

Page 42: Git para quem gosta de git

Git stash

git stashgit stash apply

Page 43: Git para quem gosta de git

Git patch + apply

git format-patchgit apply

Page 44: Git para quem gosta de git

Git bisect

git bisect startgit bisect endgit bisect run

Page 45: Git para quem gosta de git

Git bisect

c2 c3 c4 c5c1 c5

GOOD BAD

Page 46: Git para quem gosta de git

Git bisect

c2 c3 c4 c5c1 c5

GOOD BADBAD

Page 47: Git para quem gosta de git

Git bisect

c2 c3 c4 c5c1 c5

GOOD BAD

Page 48: Git para quem gosta de git

Git bisect

c2 c3 c4 c5c1 c5

BADGOODGOOD

Page 49: Git para quem gosta de git

Git bisect

c2 c3 c4 c5c1 c5

BADGOOD

Page 50: Git para quem gosta de git

Git bisect

c2 c3 c4 c5c1 c5

Primeira versão com problema

Page 51: Git para quem gosta de git

Git diff

git diffgit diff origin master

dif diff a --not b

Page 52: Git para quem gosta de git

Git reset

git resetgit reset --hard

Page 53: Git para quem gosta de git

Git tag

Tagging done right!

Page 54: Git para quem gosta de git

Aprendendo mais

http://pcottle.github.io/learnGitBranching

Page 55: Git para quem gosta de git

Ferramentas gráficas

Page 56: Git para quem gosta de git

Eu prefiro SVN

Me dê APENAS 1 motivo

Page 57: Git para quem gosta de git

Git para quem gosta de gitou não

Eduardo Bohrerhttp://about.me/nbluis