Começando com Git

1,314 views

Published on

Backup do PDF do curso do Fabio Akita: Começando com Git

Published in: Technology

Começando com Git

  1. 1. Começandocom Git www.akitaonrails.com
  2. 2. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  3. 3. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  4. 4. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  5. 5. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  6. 6. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  7. 7. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  8. 8. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  9. 9. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  10. 10. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  11. 11. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  12. 12. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  13. 13. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  14. 14. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  15. 15. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  16. 16. Sobre Git www.akitaonrails.com
  17. 17. Não é Subversion
  18. 18. Não é SubversionNão é BitKeeper
  19. 19. Não é SubversionNão é BitKeeperFilesystem Distribuído
  20. 20. Não é SubversionNão é BitKeeperFilesystem DistribuídoE ciente
  21. 21. Não é SubversionNão é BitKeeperFilesystem DistribuídoE cienteGithub
  22. 22. P.J. Hyett Chris Tom Preston Wanstrath
  23. 23. Social Networking
  24. 24. Social NetworkingFree para Open Source
  25. 25. Social NetworkingFree para Open SourceRepositórios Privados Pagos
  26. 26. Social NetworkingFree para Open SourceRepositórios Privados PagosGithub Firewall - repositório local
  27. 27. Social NetworkingFree para Open SourceRepositórios Privados PagosGithub Firewall - repositório localMercurial, Subversion
  28. 28. Social NetworkingFree para Open SourceRepositórios Privados PagosGithub Firewall - repositório localMercurial, SubversionResque, BERT, Unicorn
  29. 29. Central CVS, Subversion, Perforce Delta Distribuído Darcs, Mercurial CentralSnapshot BitKeeper Distribuído Git, Bazaar
  30. 30. Estrutura de umCommit www.akitaonrails.com
  31. 31. Commit Tag Tree
  32. 32. Commit Tag Tree /public
  33. 33. Commit Tag Tree /public Blob index.html
  34. 34. Commit Tag a0c14d8b1624fb08047808 b333d97eabbfe67ad1 Tree /public Blob index.html
  35. 35. Tag v0.1 Commit a0c14d8b1624fb08047808 b333d97eabbfe67ad1 Tree /public Blob index.html
  36. 36. a0c14d8b1624fb08047808b333d97eabbfe67ad1
  37. 37. a0c14d8b1624fb08047808b333d97eabbfe67ad1a0c14d8b1624fb0
  38. 38. a0c14d8b1624fb08047808b333d97eabbfe67ad1a0c14d8b1624fb0a0c14
  39. 39. C1/public index.html/imageslogo.gif
  40. 40. C1 C2/public /public index.html index.html/images /imageslogo.gif logo.gif
  41. 41. C1 C2/public /public index.html index.html about.html/images /imageslogo.gif logo.gif
  42. 42. C1 C2 C3/public /public /public index.html index.html index.html about.html about.html/images /images /imageslogo.gif logo.gif logo.gif
  43. 43. C1 C2 C3/public /public /public index.html index.html index.html about.html about.html/images /images /imageslogo.gif logo.gif logo.gif
  44. 44. Repositório IndexWorking Area
  45. 45. Repositório IndexWorking Area
  46. 46. Repositório Indexgit add Area Working
  47. 47. Repositório Indexgit add Area Working
  48. 48. Repositório Indexgit commit Working Area
  49. 49. Repositório Indexgit commit Working Area
  50. 50. Repositório IndexWorking Area
  51. 51. Repositório Indexgit rm --cached Working Area
  52. 52. Repositório Indexgit checkout Working Area
  53. 53. Untracked Index RepoModi ed
  54. 54. Untracked Index Repo AddModi ed
  55. 55. Untracked Index Repo Add Rm --cachedModi ed
  56. 56. Untracked Index Repo Add Commit Rm --cachedModi ed
  57. 57. Untracked Index Repo Add Commit Rm --cachedModi ed Add
  58. 58. Untracked Index Repo Add Commit Rm --cachedModi ed Add Reset HEAD
  59. 59. Untracked Index Repo Add Commit Rm --cached Modi ed AddCheckout Reset HEAD
  60. 60. Untracked Index Repo Add Commit Rm --cached Modi ed Add CommitCheckout Reset HEAD
  61. 61. init Cria repo Avalia estado dos arquivos no diretório destatus trabalho e no índiceadd Adiciona ao índicerm --cached Retira arquivo novo do índicereset HEAD Retira arquivo modi cado do índicecheckout Reinicia arquivo modi cado fora do índicecommit Grava conteúdo do índice e coloca no repolog mostra o histórico de commits no repo
  62. 62. Gerenciando o Índice www.akitaonrails.com
  63. 63. Mostra os commits que não estão maisreflog acessíveis no histórico Apaga arquivos do diretório de trabalhoclean -f que não fazem parte do reporeset [--soft, -- Apaga commits totalmente (--hard) ouhard] <commit> mantém as modi cações (--soft)
  64. 64. Stashes e Branches www.akitaonrails.com
  65. 65. Grava arquivos do índice num stashstash anônimo Grava arquivos do índice num stashstash save “<nome>” descrito Aplica último stash gravado no diretóriostash apply <codigo> de trabalho. Opcional: código do stash Aplica último stash gravado no diretóriostash pop de trabalho e apaga o stashstash drop <codigo> Apaga stash designado pelo <codigo>stash list Lista os stashes gravadosstash clear Apaga todos os stashes gravados
  66. 66. Merge e Rebase www.akitaonrails.com
  67. 67. C1 master
  68. 68. C1 C2 master
  69. 69. C1 C2 master git commit
  70. 70. bug xC1 C2 master
  71. 71. bug xC1 C2 master git checkout -b bug x
  72. 72. C3 bug xC1 C2 master
  73. 73. C3 bug xC1 C2 master git commit
  74. 74. C3 C4 bug xC1 C2 C5 master
  75. 75. C3 C4 bug xC1 C2 C5 master desenvolvimento paralelo
  76. 76. C3 C4 bug xC1 C2 C5 C6 master
  77. 77. C3 C4 bug xC1 C2 C5 C6 master merge
  78. 78. C3 C4 bug xC1 C2 C5 master
  79. 79. C3 C4 bug xC1 C2 C5 master antes do merge
  80. 80. bug xC1 C2 C3 C4 C5’ master
  81. 81. bug xC1 C2 C3 C4 C5’ master Rebase
  82. 82. Rebase bug xC1 C2 C3 C4 C5’ master Merge C3 C4 bug xC1 C2 C5 C6 master
  83. 83. branch lista os branches criadosbranch -d <nome> apaga branch. Com -D, apaga forçadocheckout -b <nome> cria novo branch a partir do branch atualcheckout -b <nome> cria novo branch a partir de um commit,[sha1, tag, branch] um tag ou um branch que existe mescla no branch atual a partir de outromerge <branch> branchmerge <branch> faz a mescla mas sem gerar commit, deixa--squase tudo no índice antes desfaz commits atuais, trás os commitsrebase <branch> do outro branch e reaplica os commits
  84. 84. Repositório Remoto:Modelo Centralizado www.akitaonrails.com
  85. 85. Clone Local 1 RepositórioClone Local 3 Central Clone Local 2
  86. 86. Clone Local 1 RepositórioClone Local 3 Clone Local 4 Central Clone Local 2 git clone
  87. 87. Clone Local 1 RepositórioClone Local 3 Clone Local 4 Central Clone Local 2 git push
  88. 88. Clone Local 1 RepositórioClone Local 3 Clone Local 4 Central Clone Local 2 git push
  89. 89. Clone Local 1 RepositórioClone Local 3 Clone Local 4 Central Clone Local 2 git push
  90. 90. Clone Local 1 RepositórioClone Local 3 Clone Local 4 Central Clone Local 2 git pull
  91. 91. Clone Local 1 RepositórioClone Local 3 Clone Local 4 Central Clone Local 2 git push
  92. 92. C5 masterC5 origin/master
  93. 93. C5 masterC5 C6 C7 origin/master
  94. 94. C5 masterC5 C6 C7 origin/master git fetch origin master
  95. 95. C5 C6 C7 masterC5 C6 C7 origin/master
  96. 96. C5 C6 C7 masterC5 C6 C7 origin/master git merge origin/master
  97. 97. C5 C6 C7 C9 masterC5 C6 C7 C8 origin/master
  98. 98. C5 C6 C7 C9 masterC5 C6 C7 C8 origin/master git fetch origin/master
  99. 99. C5 C6 C7 C9 masterC5 C6 C7 C8 origin/master git fetch origin/master
  100. 100. C8C5 C6 C7 C9 C10 masterC5 C6 C7 C8 origin/master
  101. 101. C8C5 C6 C7 C9 C10 masterC5 C6 C7 C8 origin/master git merge origin/master
  102. 102. C5 C6 C7 C9 masterC5 C6 C7 C8 origin/master
  103. 103. C5 C6 C7 C9 masterC5 C6 C7 C8 origin/master antes do merge
  104. 104. C5 C6 C7 C8 C9’ masterC5 C6 C7 C8 origin/master
  105. 105. C5 C6 C7 C8 C9’ masterC5 C6 C7 C8 origin/master git rebase origin/master
  106. 106. C5 C6 C7 C8 C9’ masterC5 C6 C7 C8 C9’ origin/master
  107. 107. C5 C6 C7 C8 C9’ masterC5 C6 C7 C8 C9’ origin/master git push
  108. 108. C5 masterC5 origin/master
  109. 109. bug xC5 masterC5 origin/master
  110. 110. bug xC5 masterC5 origin/master git checkout -b bug x
  111. 111. C8 bug xC5 masterC5 C7 origin/master
  112. 112. C8 bug xC5 masterC5 C7 origin/master desenvolvimento paralelo
  113. 113. C8 bug xC5 C7 masterC5 C7 origin/master
  114. 114. C8 bug xC5 C7 masterC5 C7 origin/master git pull
  115. 115. C7 C8’ bug xC5 C7 masterC5 C7 origin/master
  116. 116. C7 C8’ bug xC5 C7 masterC5 C7 origin/master git rebase
  117. 117. bug xC5 C7 C8’ masterC5 C7 origin/master
  118. 118. bug xC5 C7 C8’ masterC5 C7 origin/master git merge bug x
  119. 119. bug xC5 C7 C8’ masterC5 C7 C8’ origin/master
  120. 120. bug xC5 C7 C8’ masterC5 C7 C8’ origin/master git push origin master
  121. 121. bug xC5 C7 C8’ masterC5 C7 C8’ origin/master
  122. 122. C5 C7 C8’ masterC5 C7 C8’ origin/master git branch -d bug x
  123. 123. remote add <nome> Cria novo apontamento para repo remota<url>remote rm <nome> Apaga apontamento remotopush <remote> Empurra os commits locais para o repo<branch-remoto> remoto na branch especi cadafetch <remote> Puxa novos commits do repo remoto para<branch-remoto> a branch especial <remote>/<branch>pull <remote> Mesma coisa que usar primeiro “fetch” e<branch-remoto> depois “merge” a partir do branch remoto
  124. 124. Repositório Remoto:Modelo Distribuído www.akitaonrails.com
  125. 125. Github.comRepositório Fork 2 1 CentralIntegrador Local
  126. 126. Github.comRepositório Fork 2 Fork 1 CentralIntegrador Local
  127. 127. Github.comRepositório Fork 2 Fork 1 CentralIntegrador Desenvolv. Local 1
  128. 128. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Local 1
  129. 129. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  130. 130. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  131. 131. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  132. 132. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  133. 133. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  134. 134. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  135. 135. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  136. 136. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  137. 137. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  138. 138. Github.comRepositório Fork 1 Fork 2 CentralIntegrador Desenvolv. Desenvolv. Local 1 2
  139. 139. Conceitos e ComandosExtras www.akitaonrails.com
  140. 140. Cria tag apontando ao commit do branchtag <nome> atualpush --tags Envia todas as tags ao repo remoto Envia apenas a tag especi cada ao repopush <tag> remoto
  141. 141. Lidando comSubversion www.akitaonrails.com
  142. 142. Faz clone do histórico inteiro de umsvn clone <url> repositório Subversion Trás os últimos commits do reposvn fetch Subversion Envia os commits locais ao servidorsvn dcommit Subversion
  143. 143. Considerações Finais www.akitaonrails.com
  144. 144. Scott Chacon
  145. 145. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  146. 146. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  147. 147. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  148. 148. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  149. 149. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  150. 150. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  151. 151. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  152. 152. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  153. 153. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  154. 154. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  155. 155. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  156. 156. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  157. 157. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  158. 158. Sobre Git Ubuntu Windows Mac OS X Primeiros PassosEstrutura de um Commit Gerenciando o Índice Stashes e Branches Merge e Rebase Modelo Centralizado Modelo Distribuído Comandos ExtrasLidando com Subversion Considerações Finais
  159. 159. Con ra nossos outros screencasts à venda em: akitaonrails.com/screencastsInformações: boss@akitaonrails.com©2010 Fabio Akita www.akitaonrails.com

×