Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Git para quem gosta de git

3,629 views

Published on

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.

Published in: Software
  • Be the first to comment

Git para quem gosta de git

  1. 1. Git para quem gosta de git ou não Eduardo Bohrer http://about.me/nbluis
  2. 2. História
  3. 3. Kernel em números 9 repositórios oficiais com suporte ativo
  4. 4. 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/
  5. 5. Eu prefiro um tallball SVN Slogan = CSV Done Right
  6. 6. Um dia de fúria de Linux Torvalds There is no way to do cvs right. (Linus Torvalds)
  7. 7. Trabalho remoto, independente, offline SSL Rápido Compressão Histórico local Branchs locais Tags locais Working tree local Commits locais
  8. 8. Github
  9. 9. Chega de mimimi
  10. 10. Um commit no GIT Pasta raiz Sub-pasta Arquivo no raiz Arquivo na sub-pasta
  11. 11. Um commit no GIT git commit
  12. 12. Um commit no GIT commit: c1 --------------------- parent: null tree: Pasta raiz author: Bohrer tree: Pasta Raiz ----------------------------- tree: Sub-pasta blob: Arquivo no Raiz blob: Arquivo no Raiz tree: bcdblob: Arquivo na sub-pasta tree: Sub-pasta ------------------------------------- blob: Arquivo na sub-pasta
  13. 13. Outro commit Mudei um arquivo git commit
  14. 14. Outro commit commit: c2 --------------------- parent: c1 tree: Pasta raiz author: Bohrer tree: Pasta Raiz ----------------------------- tree: Sub-pasta blob: Arquivo no Raiz blob: Arquivo no Raiz commit: c1 --------------------- parent: null tree: Pasta raiz author: Bohrer tree: Pasta Raiz ----------------------------- tree: Sub-pasta blob: Arquivo no Raiz blob: Arquivo no Raiz tree: bcdblob: Arquivo na sub-pasta tree: Sub-pasta ------------------------------------- blob: Arquivo na sub-pasta
  15. 15. Working tree c1master* c2 c3 c4 c5
  16. 16. Forks e Branches master* c2 c3 c4 c5 work c2 c3 c4 c5 b2 c4 c5 c1
  17. 17. Uma linda e maravilhosa arvore!
  18. 18. Mas o SVN também faz
  19. 19. Esqueça o que aprendeu sobre VCS Branchs são legais Merges também (as vezes)
  20. 20. Fork e branch git branch work git checkout work
  21. 21. Fork e Branch master c1 work* c2
  22. 22. Fork e Branch master c2 work* c3 c4 c1
  23. 23. Merge
  24. 24. Estrategias de merge ● Fast forward ● Recursive ● Octopus ● Outros (mais complexos)
  25. 25. Merge git checkout master git merge work
  26. 26. Fast forward master* c2 work c3 c4 c1 Não há nada a resolver! :)
  27. 27. Fast forward c2 master* work c3 c4 c1 Não há nada a resolver! :)
  28. 28. Recursive merge master c2 c3 work c3 c4 c1 c4 Commit nas duas. :(
  29. 29. Recursive merge master* c2 c3 work c3 c4 c1 c4 c5
  30. 30. Octopus merge master* c2 c5 work c2 c3 b2 c4 c1
  31. 31. Octopus merge master* c2 c5 work c2 c3 b2 c4 c1 c5
  32. 32. Mas o SVN também faz
  33. 33. Podando a árvore git rebase
  34. 34. Git rebase master c2 work* c3 c4 c1
  35. 35. Git rebase master c2 work* c3 c4c1
  36. 36. Mais ferramentas Muito mais
  37. 37. Git remote git remote Só mais um ramo
  38. 38. Git remote origin/ master c2 master* c3 c4 c1
  39. 39. Git pull git pull (git fetch + git merge)
  40. 40. Git push git push origin master
  41. 41. Git log git log
  42. 42. Git stash git stash git stash apply
  43. 43. Git patch + apply git format-patch git apply
  44. 44. Git bisect git bisect start git bisect end git bisect run
  45. 45. Git bisect c2 c3 c4 c5c1 c5 GOOD BAD
  46. 46. Git bisect c2 c3 c4 c5c1 c5 GOOD BADBAD
  47. 47. Git bisect c2 c3 c4 c5c1 c5 GOOD BAD
  48. 48. Git bisect c2 c3 c4 c5c1 c5 BADGOODGOOD
  49. 49. Git bisect c2 c3 c4 c5c1 c5 BADGOOD
  50. 50. Git bisect c2 c3 c4 c5c1 c5 Primeira versão com problema
  51. 51. Git diff git diff git diff origin master dif diff a --not b
  52. 52. Git reset git reset git reset --hard
  53. 53. Git tag Tagging done right!
  54. 54. Aprendendo mais http://pcottle.github.io/learnGitBranching
  55. 55. Ferramentas gráficas
  56. 56. Eu prefiro SVN Me dê APENAS 1 motivo
  57. 57. Git para quem gosta de git ou não Eduardo Bohrer http://about.me/nbluis

×