SlideShare uma empresa Scribd logo
Go GIT
Controle de Versão Distribuido




                                 By @_marcospaulo_
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 as
modificações, faz comparações de versões
              modificadas.
Ou seja...
Se você esculhambar as coisas ou perder arquivos,
       facilmente podemos recuperá-los.....



                       e...



         Nó saberemos que foi você!!!!
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
Sistemas De Controle de
           Versão Centralizado
  Apenas um servidor
    que contém os
 arquivos versionados.

 Vários clientes baixam
esses arquivos e depois
enviam eles modificados
 e baixam modificações
   dos outros e assim
     sucetivamente.
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.
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 grupos
diferentes e depois juntar ao repositório
      final mantendo todo histórico.
Visão de Repositórios
Go git - Presentation @Navita
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
Snapshots e não diferenças
                  CVS, SVN...




 GIT
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.
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.
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.
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...
Ai eu te pergunto
O QUE ACONTECERIA
 SE TODA A REDE DA
   NAVITA CAÍSSE
     AGORA E SÓ
VOLTASSE AMANHÃ?
Vamos entender o quanto esse problema
é grave com um exemplo prático e rápido
Exemplo prático e rápido


Você vai viajar pras Filipinas e ficará horas no
    avião morgando sem nada pra fazer.
Exemplo prático e rápido

Mas ai você tem a brilhante ideia de se divertir
   no avião programando no seu notebook
naquele seu projeto lá do trabalho que tá irado.
Exemplo prático e rápido

• Com SVN
Você programa, programa, programa, programa a
viagem toda... cria uma funcionalidade nova legal
  pra caramba mas meche em vários arquivos.
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.
Exemplo prático e rápido

 • Com SVN
  Ai o seu amigo Astronildo do trabalho liga pra
você e diz que seu último commit bugou toda uma
funcionalidade que já estava pronta a muito tempo
Exemplo prático e rápido

• Com SVN
 Mas você fez muitas modificações, não tem ideia
de onde você esculhambou a aplicação, e você não
pode 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
Exemplo prático e rápido

• Com SVN
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...
Exemplo prático e rápido

• Com o GIT
Quando você chega no hotel então você faz um
 push de todos os snapshots e históricos pro
servidor, porque você agora tá com internet e
               pode acessá-lo.
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 uma
funcionalidade que já estava pronta a muito tempo
Exemplo prático e rápido

• Com o GIT
Mas 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
Exemplo prático e rápido

• Com o GIT



                  Você Owna!!!!!
Ascensão do GIT

Mas 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 open
sources e o que fez ele ganhar tanto destaque
              nos últimos anos?
GitHub is the best way to
collaborate with others. Fork,
send pull requests and manage
all your public and private git
repositories.
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.
Mas qual empresa séria de
verdade seria louca de entregar
seus códigos fontes na mão de
    servidor de terceiros?
Aqui vai algumas...
Let`s Take A Look At
       GitHub
Perguntas??
Obrigado a todos




                Até a próxima
github.com/marcospaulo          By @_marcospaulo_

Mais conteúdo relacionado

PDF
O poder do Docker (7 Masters)
PDF
Controle de versões distribuído para projetos de software
PDF
Git alem do basico
PPTX
Introdução ao docker
PDF
Conceitos e exemplos em versionamento de código
PDF
Verdades que não querem te contar sobre Docker
PDF
Precisamos falar sobre Testes de infraestrutura
O poder do Docker (7 Masters)
Controle de versões distribuído para projetos de software
Git alem do basico
Introdução ao docker
Conceitos e exemplos em versionamento de código
Verdades que não querem te contar sobre Docker
Precisamos falar sobre Testes de infraestrutura

Mais procurados (20)

PDF
TDC 2015 POA - O Fantástico Mundo de Docker
PDF
Apresentação Docker
PDF
O que é docker?
PDF
Git e GitHub: Versionamento de Código Fácil
PDF
Orquestrando Docker Containers: Machine, Swarm e Compose
PPTX
PDF
Docker: uma visão geral
PDF
TDC 2016 Floripa - Workshop docker
PDF
Apresentação docker
PDF
Workshop Docker
PDF
Git Básico
PDF
Jenkins, o CI ao seu dispor
PPTX
Sistemas de Controle de Versão
PDF
Troubleshooting docker
PDF
O poder dos microsserviços com Docker e Kubernetes
PDF
Git e a importância de versionar um projeto
ODP
Docker: uma visão geral e exemplos de uso
PDF
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
PPTX
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
PDF
5. rodando containers docker na aws
TDC 2015 POA - O Fantástico Mundo de Docker
Apresentação Docker
O que é docker?
Git e GitHub: Versionamento de Código Fácil
Orquestrando Docker Containers: Machine, Swarm e Compose
Docker: uma visão geral
TDC 2016 Floripa - Workshop docker
Apresentação docker
Workshop Docker
Git Básico
Jenkins, o CI ao seu dispor
Sistemas de Controle de Versão
Troubleshooting docker
O poder dos microsserviços com Docker e Kubernetes
Git e a importância de versionar um projeto
Docker: uma visão geral e exemplos de uso
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
5. rodando containers docker na aws
Anúncio

Destaque (20)

PDF
QConSP: Vivenciando dev ops para além da automação de infraestrutura
PDF
Controle de Mudanças com GitHub
PDF
Introdução ao Sistema de Controle de Versão
PDF
[Mini-curso] Sistema de Controle de Versão
PPT
GCS - Aula 02 - Conceitos Principais
PDF
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
PPT
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
PDF
Apresentação do SAEO na Administração Pública
PPTX
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
PDF
Controle de versão com GIT
PPT
GCS - Aula 09 - GCS Ágil
PDF
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
PDF
Workshop sistema de versionamento de código - git
PDF
Alm open source
PDF
Vivenciando dev ops para além da automação de infraestrutura 2.0
PDF
Android UI Fundamentals part 1
PDF
Controle de versão com Git e BitBucket
PPTX
Mini aula-sublime-text-git-e-github
PDF
Controle de versão utilizando git
PDF
O futuro dos WebApps com AngularJS 2.0
QConSP: Vivenciando dev ops para além da automação de infraestrutura
Controle de Mudanças com GitHub
Introdução ao Sistema de Controle de Versão
[Mini-curso] Sistema de Controle de Versão
GCS - Aula 02 - Conceitos Principais
Wine.com.br - De zero a 300 milhões de faturamento na mesma plataforma
Joomla!Day Brasil 2008 - FláVio Kubota - Gsoc Version Control
Apresentação do SAEO na Administração Pública
Transformando a experiência dos times de DEV, OPS & BIZ nos Sistemas Financei...
Controle de versão com GIT
GCS - Aula 09 - GCS Ágil
Controle de Versão e Monitoramento de Projetos com SVN + WebSVN + StatSVN
Workshop sistema de versionamento de código - git
Alm open source
Vivenciando dev ops para além da automação de infraestrutura 2.0
Android UI Fundamentals part 1
Controle de versão com Git e BitBucket
Mini aula-sublime-text-git-e-github
Controle de versão utilizando git
O futuro dos WebApps com AngularJS 2.0
Anúncio

Semelhante a Go git - Presentation @Navita (20)

PPTX
Git - Controle de Versão Inteligente
PDF
Rogue Snail Talk - Usando Git na Game Jam - WGJ
PDF
Rogue Snail Talk - Usando Git na Game Jam - WGJ
PPTX
Migração SVN para GIT
PDF
Usando Git na Unity - Gaming For All 2021
PDF
Controle de versão com Git
PPTX
Workshop de Introdução ao Git GitHub
PDF
Curso git-0001
PPTX
Fluxo de desenvolvimento de software utilizando Git
PPTX
Primeiros passos - GIT
PPTX
Hubot deployments
PDF
GIT Básico
PDF
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
PDF
Introdução ao Git - fs2w - GrupySP
PDF
Introdução ao Git
PDF
Introducao git fisl
PDF
SVN - Subversion: Guia de sobrevivência do usuário
PPSX
Git e boas praticas!
KEY
Git para quem vem do SVN
PDF
Git github tortoise git
Git - Controle de Versão Inteligente
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Migração SVN para GIT
Usando Git na Unity - Gaming For All 2021
Controle de versão com Git
Workshop de Introdução ao Git GitHub
Curso git-0001
Fluxo de desenvolvimento de software utilizando Git
Primeiros passos - GIT
Hubot deployments
GIT Básico
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Introdução ao Git - fs2w - GrupySP
Introdução ao Git
Introducao git fisl
SVN - Subversion: Guia de sobrevivência do usuário
Git e boas praticas!
Git para quem vem do SVN
Git github tortoise git

Último (20)

PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula sobre desenvolvimento de aplicativos
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula sobre desenvolvimento de aplicativos
Processos na gestão de transportes, TM100 Col18
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
COBITxITIL-Entenda as diferença em uso governança TI
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...

Go git - Presentation @Navita

  • 1. Go GIT Controle de Versão Distribuido By @_marcospaulo_
  • 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 as modificações, faz comparações de versões modificadas.
  • 3. Ou seja... Se você esculhambar as coisas ou perder arquivos, facilmente podemos recuperá-los..... e... Nó saberemos que foi você!!!!
  • 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. Sistemas De Controle de Versão Centralizado Apenas um servidor que contém os arquivos versionados. Vários clientes baixam esses arquivos e depois enviam eles modificados e baixam modificações dos outros e assim sucetivamente.
  • 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. 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 grupos diferentes e depois juntar ao repositório final mantendo todo histórico.
  • 10. 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
  • 11. Snapshots e não diferenças CVS, SVN... GIT
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 15. 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...
  • 16. Ai eu te pergunto
  • 17. O QUE ACONTECERIA SE TODA A REDE DA NAVITA CAÍSSE AGORA E SÓ VOLTASSE AMANHÃ?
  • 18. Vamos entender o quanto esse problema é grave com um exemplo prático e rápido
  • 19. Exemplo prático e rápido Você vai viajar pras Filipinas e ficará horas no avião morgando sem nada pra fazer.
  • 20. Exemplo prático e rápido Mas ai você tem a brilhante ideia de se divertir no avião programando no seu notebook naquele seu projeto lá do trabalho que tá irado.
  • 21. Exemplo prático e rápido • Com SVN Você programa, programa, programa, programa a viagem toda... cria uma funcionalidade nova legal pra caramba mas meche em vários arquivos.
  • 22. 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.
  • 23. Exemplo prático e rápido • Com SVN Ai o seu amigo Astronildo do trabalho liga pra você e diz que seu último commit bugou toda uma funcionalidade que já estava pronta a muito tempo
  • 24. Exemplo prático e rápido • Com SVN Mas você fez muitas modificações, não tem ideia de onde você esculhambou a aplicação, e você não pode 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
  • 25. Exemplo prático e rápido • Com SVN
  • 26. 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...
  • 27. Exemplo prático e rápido • Com o GIT Quando você chega no hotel então você faz um push de todos os snapshots e históricos pro servidor, porque você agora tá com internet e pode acessá-lo.
  • 28. 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 uma funcionalidade que já estava pronta a muito tempo
  • 29. Exemplo prático e rápido • Com o GIT Mas 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
  • 30. Exemplo prático e rápido • Com o GIT Você Owna!!!!!
  • 31. Ascensão do GIT Mas 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 open sources e o que fez ele ganhar tanto destaque nos últimos anos?
  • 32. GitHub is the best way to collaborate with others. Fork, send pull requests and manage all your public and private git repositories.
  • 33. 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.
  • 34. Mas qual empresa séria de verdade seria louca de entregar seus códigos fontes na mão de servidor de terceiros?
  • 36. Let`s Take A Look At GitHub
  • 38. Obrigado a todos Até a próxima github.com/marcospaulo By @_marcospaulo_

Notas do Editor