Go git - Presentation @Navita

537 visualizações

Publicada em

Keynote presented by me in 2011 at Navita Tecnologia to introduce Git Version Control to the company.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Go git - Presentation @Navita

  1. 1. Go GITControle de Versão Distribuido By @_marcospaulo_
  2. 2. O que é controle de versão? - Guarda as mudanças de arquivos em versões para que você possa recuperá- los depois. - Guarda informações de quem fez asmodificações, faz comparações de versões modificadas.
  3. 3. Ou seja...Se você esculhambar as coisas ou perder arquivos, facilmente podemos recuperá-los..... e... Nó saberemos que foi você!!!!
  4. 4. Controle de Versão local Método de controle era copiar arquivos em pastas Depois foi criada uma estratégia de salvar as mudanças em banco de dados Rcs foi o VCS tools mais conhecida e inclusive ainda hoje vem junto com MacOS
  5. 5. Sistemas De Controle de Versão Centralizado Apenas um servidor que contém os arquivos versionados. Vários clientes baixamesses arquivos e depoisenviam eles modificados e baixam modificações dos outros e assim sucetivamente.
  6. 6. Sistemas De Controle de Versão Centralizado- Desvantagens Arquivos centralizados em um único servidor . Se a rede cair ninguém mais pode comitar e os arquivos não estarão mais sob controle de versão.
  7. 7. Sistemas De Controle De Versão Distribuidos. Computadores que baixam os projetos não pegam apenas a última versão dos arquivos, mas sim ele espelha todo o repositório. Posso trabalhar simultaneamente em repositórios diferentes com gruposdiferentes e depois juntar ao repositório final mantendo todo histórico.
  8. 8. Visão de Repositórios
  9. 9. Pequena História do GIT • Criado inicialmente para manter o código do kernel do linux. • Criado por Linus Torvalds, o criador do Linux, e a sua comunidade de desenvolvimento. Feito pra ser: - Rápido- Suporte muito bom para desenvolvimento não linear. - Totalmente distribuido
  10. 10. Snapshots e não diferenças CVS, SVN... GIT
  11. 11. Quase todas as operações são locais • Se você comparar com SVN, CVS, perceberá que os deuses abençoaram o Git com poderes inexpressáveis• Todo seu histórico do projeto estará no seu disco local, quase todas as operações pareceram instantâneas.
  12. 12. Git tem integridade • Antes de salvar os arquivos ele faz uma validação através de checksum.• Impossível modificar um arquivo sem que o GIT saiba.• Mecanismo de checksum chamado de SHA-1 hash.
  13. 13. GIT apenas adiciona dados• Suas ações no git, praticamente todas só adicionam dados ao banco de dados do Git.• Você tem que ser muito fera pra conseguir fazer algo no sistema que não possa ser desfeito ou que faça apagar dados.• Documento commitado e pushado é documento praticamente imperdível.
  14. 14. Com o GIT....• O Git você praticamente trabalha local, faz seus commits no seu database local e depois manda um push pro servidor enviando todo teu snapshot e ele se responsabiliza por organizar as snapshots. Com o SVN, CVS....• Já aqui você modifica e commita pro servidor guardar tua mudança, commita e joga pro servidor guardar a mudança, não há como commitar local e depois só salvar pro servidor...
  15. 15. Ai eu te pergunto
  16. 16. O QUE ACONTECERIA SE TODA A REDE DA NAVITA CAÍSSE AGORA E SÓVOLTASSE AMANHÃ?
  17. 17. Vamos entender o quanto esse problemaé grave com um exemplo prático e rápido
  18. 18. Exemplo prático e rápidoVocê vai viajar pras Filipinas e ficará horas no avião morgando sem nada pra fazer.
  19. 19. Exemplo prático e rápidoMas ai você tem a brilhante ideia de se divertir no avião programando no seu notebooknaquele seu projeto lá do trabalho que tá irado.
  20. 20. Exemplo prático e rápido• Com SVNVocê programa, programa, programa, programa aviagem toda... cria uma funcionalidade nova legal pra caramba mas meche em vários arquivos.
  21. 21. Exemplo prático e rápido• Com SVN Quando você chega no hotel então vocêcommita tudo lá pro servidor, porque você agora tá com internet e pode acessá-lo.
  22. 22. Exemplo prático e rápido • Com SVN Ai o seu amigo Astronildo do trabalho liga pravocê e diz que seu último commit bugou toda umafuncionalidade que já estava pronta a muito tempo
  23. 23. Exemplo prático e rápido• Com SVN Mas você fez muitas modificações, não tem ideiade onde você esculhambou a aplicação, e você nãopode ficar voltando versões porque durante o voo você não fez nenhum commit, daí só existe duas versões... a de antes do voo e a de depois
  24. 24. Exemplo prático e rápido• Com SVN
  25. 25. Exemplo prático e rápido• Com o GIT Você programa, commita, programa, commita, programa, commita a viagem toda... cria uma funcionalidade nova legal pra caramba e vai criando branches lógicos pros testes e tudo mais.... e commita... e programa...
  26. 26. Exemplo prático e rápido• Com o GITQuando você chega no hotel então você faz um push de todos os snapshots e históricos proservidor, porque você agora tá com internet e pode acessá-lo.
  27. 27. Exemplo prático e rápido• Com o GIT Ai o seu amigo Astronildo do trabalho liga pra você e diz que seu último push bugou toda umafuncionalidade que já estava pronta a muito tempo
  28. 28. Exemplo prático e rápido• Com o GITMas você usou o GIT, todas as mudanças que você fez foram versionadas, você pode ficar recuperando etapas de mudanças do voo até a funcionalidade voltar a funcionar... e assim vocênao perde todo o trabalho... ou mesmo não perde trabalho nenhum
  29. 29. Exemplo prático e rápido• Com o GIT Você Owna!!!!!
  30. 30. Ascensão do GITMas o que fez o GIT estourar e ser tão usado hoje por várias start-ups, grandes empresas,vários profissionais, por vários projetos opensources e o que fez ele ganhar tanto destaque nos últimos anos?
  31. 31. GitHub is the best way tocollaborate with others. Fork,send pull requests and manageall your public and private gitrepositories.
  32. 32. O que é o github?• Servidor de repositórios• Rede Social• Gerenciador de projetos em questões técnicas.• Wikis, Code Review, Gráficos, Issue Tracker e muito mais.
  33. 33. Mas qual empresa séria deverdade seria louca de entregarseus códigos fontes na mão de servidor de terceiros?
  34. 34. Aqui vai algumas...
  35. 35. Let`s Take A Look At GitHub
  36. 36. Perguntas??
  37. 37. Obrigado a todos Até a próximagithub.com/marcospaulo By @_marcospaulo_

×