Git - Controle de Versões do Jeito Certo

13,357 views

Published on

Palestra de Introdução ao Git que apresentei no Rails Summit 09.

Infelizmente, sem os screencasts no final, os slides não fazem muito sentido.

Published in: Technology
1 Comment
15 Likes
Statistics
Notes
  • A melhor introdução ao GIT que já ví.

    Posso usar seu material como base para uma aula sobre Git? Ministro aula no SENAI São José / SC para turmas que fazem o Ensino Médio em paralelo. A qualidade gráfica do seu material faz bastante diferença para este público.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
13,357
On SlideShare
0
From Embeds
0
Number of Embeds
145
Actions
Shares
0
Downloads
400
Comments
1
Likes
15
Embeds 0
No embeds

No notes for slide

Git - Controle de Versões do Jeito Certo

  1. 1. Git: Controle de versões do jeito certo Arthur Zapparoli @arthurgeek
  2. 2. Arthur?
  3. 3. Arthur? • ArthurGeek
  4. 4. Arthur? • ArthurGeek • http://arthurgeek.net
  5. 5. Arthur? • ArthurGeek • http://arthurgeek.net • @arthurgeek
  6. 6. Agenda
  7. 7. Agenda • VCS • O que é? • Vantagens • Como funciona? • Centralizado x Distribuído
  8. 8. Agenda
  9. 9. Agenda • Git • O que é? • Características básicas • Particularidades • Instalando
  10. 10. Agenda
  11. 11. Agenda • Git • Configurando • Iniciando um repositório • Workflow básico • Workflow remoto
  12. 12. Pesquisa
  13. 13. Pesquisa • Quem não usa NENHUM controle de versões?
  14. 14. Pesquisa • Quem não usa NENHUM controle de versões? • CVS?
  15. 15. Pesquisa • Quem não usa NENHUM controle de versões? • CVS? • Subversion?
  16. 16. Pesquisa • Quem não usa NENHUM controle de versões? • CVS? • Subversion? • Algum outro?
  17. 17. VCS: O que é?
  18. 18. VCS: O que é? • um software para gerenciar diferentes versões de um documento qualquer
  19. 19. VCS: O que é? • um software para gerenciar diferentes versões de um documento qualquer • o processo de guardar o histórico de alterações de diferentes arquivos.
  20. 20. VCS: Vantagens
  21. 21. VCS: Vantagens • Backup automático de todos arquivos
  22. 22. VCS: Vantagens • Backup automático de todos arquivos • Controle do histórico
  23. 23. VCS: Vantagens • Backup automático de todos arquivos • Controle do histórico • Trabalho em equipe
  24. 24. VCS: Vantagens • Backup automático de todos arquivos • Controle do histórico • Trabalho em equipe • Marcação e resgate de versões estáveis
  25. 25. VCS: Vantagens • Backup automático de todos arquivos • Controle do histórico • Trabalho em equipe • Marcação e resgate de versões estáveis • Ramificação do projeto
  26. 26. VCS: Como funciona?
  27. 27. VCS: Como funciona? Repositório
  28. 28. VCS: Como funciona? Repositório Pedro
  29. 29. VCS: Como funciona? Ch ec Repositório ko ut Pedro
  30. 30. VCS: Como funciona? Ch ec Repositório ko ut Modifica Pedro
  31. 31. VCS: Como funciona? Ip rem mit Ch Repositório Lo om ec Repositório ko C ut m su Modifica Pedro
  32. 32. VCS: Centralizado x Distribuído
  33. 33. VCS: Modelo Centralizado
  34. 34. VCS: Modelo Centralizado • Repositório fica armazanedo em um servidor central
  35. 35. VCS: Modelo Centralizado • Repositório fica armazanedo em um servidor central • Os desenvolvedores ao fazerem um checkout, obtêm uma cópia da última revisão do repositório
  36. 36. VCS: Modelo Centralizado • Repositório fica armazanedo em um servidor central • Os desenvolvedores ao fazerem um checkout, obtêm uma cópia da última revisão do repositório • Somente usuários autorizados podem fazer commits
  37. 37. VCS: Modelo Centralizado Guilherme out Com eck mit Ch Ch eck out ck out Che Ana Com mit Repositório mit Carlos Com Ch ec Ch ec it k ou ko t m it ut om m C m Co Sílvia Pedro
  38. 38. VCS: Modelo Distribuído
  39. 39. VCS: Modelo Distribuído • Cada projeto é um repositório completo, com histórico total
  40. 40. VCS: Modelo Distribuído • Cada projeto é um repositório completo, com histórico total • Independe de acesso à rede ou um servidor central
  41. 41. VCS: Modelo Distribuído • Cada projeto é um repositório completo, com histórico total • Independe de acesso à rede ou um servidor central • Commits podem ser feitos offline
  42. 42. VCS: Modelo Distribuído • Cada projeto é um repositório completo, com histórico total • Independe de acesso à rede ou um servidor central • Commits podem ser feitos offline • Commits podem ser transferidos de um repositório para outro facilmente
  43. 43. VCS: Modelo Distribuído Guilherme Pu sh Ana Push ll Pu Carlos ll Pu Pu sh sh Pu Pull Push Sílvia Pedro
  44. 44. Git: O que é?
  45. 45. Git: O que é? • Um projeto Open Source (GPL v2)
  46. 46. Git: O que é? • Um projeto Open Source (GPL v2) • Originalmente escrito por Linus Torvalds em 2005
  47. 47. Git: O que é? • Um projeto Open Source (GPL v2) • Originalmente escrito por Linus Torvalds em 2005 • Atualmente é mantido por Junio Hamano
  48. 48. Git: O que é? • Um projeto Open Source (GPL v2) • Originalmente escrito por Linus Torvalds em 2005 • Atualmente é mantido por Junio Hamano • Desenvolvido para manter o Kernel do Linux
  49. 49. Git: O que é? • Um projeto Open Source (GPL v2) • Originalmente escrito por Linus Torvalds em 2005 • Atualmente é mantido por Junio Hamano • Desenvolvido para manter o Kernel do Linux • Sistema de controle de versões distribuído
  50. 50. Git: O que é? • Um projeto Open Source (GPL v2) • Originalmente escrito por Linus Torvalds em 2005 • Atualmente é mantido por Junio Hamano • Desenvolvido para manter o Kernel do Linux • Sistema de controle de versões distribuído • Foco em rapidez, eficiência e uso em grandes projetos
  51. 51. Git: Características Básicas
  52. 52. Git: Características Básicas • Suporte para desenvolvimento não- linear
  53. 53. Git: Características Básicas • Suporte para desenvolvimento não- linear • Desenvolvimento distribuído
  54. 54. Git: Características Básicas • Suporte para desenvolvimento não- linear • Desenvolvimento distribuído • Compatibilidade com sistemas/ protocolos existentes
  55. 55. Git: Características Básicas • Suporte para desenvolvimento não- linear • Desenvolvimento distribuído • Compatibilidade com sistemas/ protocolos existentes • Manipulação eficiente de grandes projetos
  56. 56. Git: Características Básicas • Suporte para desenvolvimento não- linear • Desenvolvimento distribuído • Compatibilidade com sistemas/ protocolos existentes • Manipulação eficiente de grandes projetos • Limpo
  57. 57. Git: Características Básicas • Staging Index • HEAD, HEAD^, HEAD^^, HEAD~2
  58. 58. Git: Características Básicas • Staging Index • HEAD, HEAD^, HEAD^^, HEAD~2 • SHA1s ao invés de revision numbers • f5f75c652b9c2347522159a87297820103e593e4 • f5f75c
  59. 59. Git: Instalando
  60. 60. Git: Instalando • Windows • http://code.google.com/p/msysgit/
  61. 61. Git: Instalando • Windows • http://code.google.com/p/msysgit/ • Mac OS X • http://code.google.com/p/git-osx-installer
  62. 62. Git: Instalando • Windows • http://code.google.com/p/msysgit/ • Mac OS X • http://code.google.com/p/git-osx-installer • Linux • De acordo com sua distro favorita ou à partir do fonte
  63. 63. Git: Configurando
  64. 64. Git: Configurando
  65. 65. Git: Configurando Usar --global faz com que a mesma configuração seja usada em todos os projetos
  66. 66. Git: Iniciando um repositório
  67. 67. Git: Iniciando um repositório
  68. 68. Git: Iniciando um repositório O diretório objects armazena todos os objetos do Git: commits, trees, blobs, etc.
  69. 69. Git: Workflow básico
  70. 70. Git: Workflow básico
  71. 71. Git: Workflow básico git status, git add, git commit, git log, git commit -a
  72. 72. Git: Workflow básico
  73. 73. Git: Workflow básico git diff, git blame, git reset, git commit -v, .gitignore
  74. 74. Git: Branching
  75. 75. Git: Branching
  76. 76. Git: Branching git branch, git checkout, gitk, git merge, git branch -d/-D, git checkout -b
  77. 77. Git: Branching
  78. 78. Git: Branching git merge com modificações no mesmo arquivo
  79. 79. Git: Branching
  80. 80. Git: Branching git rebase, merge conflicts, git rebase --continue
  81. 81. Git: Remote Workflow
  82. 82. Git: Remote Workflow
  83. 83. Git: Remote Workflow git clone, git push, git pull, git fetch
  84. 84. Git: Tópicos Avançados • git commit --interactive • git rebase --interactive • bisect • cherry-pick • git commit --ammend • reflog
  85. 85. Perguntas?
  86. 86. Obrigado! @arthurgeek http://busk.com Estamos contratando! ;)

×