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 - Controle de Versões do Jeito Certo

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.

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! ;)

×