SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
ráp ido
                                      rsã o-
                            d e- ve
                    tro le-
               --con                                                           iza do
                                                                   ent ral
                                                       ov o-c
                                       o -é- o-n
                                rib uid
                      --d ist                    uro        --fáci l-br
                                                                        anch

                                          - -seg


@helmedeiros                                    l-m erge
                                      -- fáci
                                                                   -lo cal
                                                       --tudo-é
Git é sistema de controle de versão distribuído
livre e de código aberto, projetado para lidar com
    tudo, de pequenos a grandes projetos, com
              velocidade e eficiência.




                                                     http://git-scm.com/
!=
Considerando a visão de LINUS TORVALDS


“cvs ou baseado               “controle de
    em suas
                           versão do jeito que
  primitivas?”
                             ele realmente
                              deveria ser”
TALVEZ, NÃO SEJA UM BOM PONTO DE PARTIDA...
BLASFEMAR SOBRE OS SISTEMAS DE CONTROLE DE VERSÃO
               USADOS... MAS... HUMMM...
            PRECISAMOS IR EM FRENTE!
branching e   pequeno e                 garantia de
                          distribuido
  merging      rápido                   integridade




         área de
                     gratuito   código aberto
       conferência




         Quais são as vantagens?

                                                      http://git-scm.com/
trunk
                                                                                                           cria
                                                                                                           tag
                                                                     local            branch
                     usando     SIM       avisou?
       SIM           trunk?                               trunk
                                                                                dev      reintegrate

                                                                  cria
                                                                                         trunk
TAG?                                                         branch
             trunk                NÃO        tag                                                           prod

                 cria                                                        homol
       NÃO                                     restaura

                 tag                           trunk                                     ok?




        #1     BRANCHING E MERGING
       Git permite e incentiva a criação de vários branchs locais,
       que podem ser totalmente independentes um do outro.
BRANCHING E MERGING
                              Alternância de contexto sem atrito
Criar um branch para testar uma idéia, comitar algumas vezes, voltar para onde você iniciou, aplicar um patch, voltar para
                                    onde você estava experimentando, e mesclá-los!


                              Linhas de versionamento especifica
Ter uma linha de versionamento que sempre contém apenas o que vai para a produção, outra que você mescle para testes,
                                 e várias outras menores para o dia a dia de trabalho.

                            Workflow baseado em funcionalidades
Criar um novo branch para cada nova funcionalidade que vai trabalhar, para que você possa facilmente alternar entre eles,
     em seguida, exclua cada linha de versionamento quando essa funcionalidade for incorporada a sua linha principal.


                                    Experimentação descartável
Criar um branch para experimentar, perceber que não resolverá o problema, e apenas excluí-lo - abandonar o trabalho sem
                                              que ninguém tenha o visto.
                                                                                                                   http://git-scm.com/
#2     PEQUENO E RÁPIDO
Git é rápido. Com o Git, quase todas as operações são realizadas localmente, dando-lhe
uma vantagem enorme
PEQUENO E RÁPIDO
   Commit Arquivos(A)                          Commit Imagens(B)                                      Diff Local
        Add, commit e push 113 arquivos     Add, commit e push de 1000 imagens de          Diff de 187 arquivos alterados locais
                modificados                                  1Kb                                  contra o último commit.
                                                                                                                      1.09
    3                          2.6            30                          24.7             1.1
 2.25                                        22.5                                       0.825
  1.5                                         15                                         0.55
                 0.64                                                                                   0.25
 0.75                                         7.5          1.53                         0.275
    0                                           0                                            0
                  git          svn                         git            svn                            git          svn
           Diff Arquivos                                                                                Update
                                                        Diff Tags
Diff entre versão atual e outra 4 commits                                                        Pull do cenário do Commit A
                                            Diff entre duas tags (v1.9.1.0/v1.9.3.0 )
          atrás (269 alterados)                                                                     (113 arquivos alterados)
                              3.99                                      83.57                                         2.82
   4                                         90                                             3
   3                                        67.5                                         2.25
   2                                         45                                           1.5            0.9
   1            0.25                        22.5          1.17
                                                                                         0.75
   0                                           0                                            0
                 git          svn                         git            svn                             git          svn
                                                                                                                             http://git-scm.com/
PEQUENO E RÁPIDO
          Log (Todos)                                                               Log (Arquivo)
                                                     Log (50)
        Log de todos os commits                                              Log do histórico de um arquivo (array.c -
                                                Log dos últimos 50 commits
          (26.056 commits)                                                               483 revissões)
 200                                      0.4                       0.38      90                         82.84
                            169.2
 150                                      0.3                                67.5
 100                                      0.2                                 45
  50                                      0.1          0.01                  22.5
              0.52                                                                         0.6
   0                                        0                                   0
               git          svn                        git          svn                    git            svn

              Blame
Anotações em um único arquivo (array.c)

  4                        3.04
  3
             1.91
  2
  1
  0
              git          svn
                                                                                                                 http://git-scm.com/
PEQUENO E RÁPIDO
                         Commit ÁPIDO QUE O SVN Local
   Commit Arquivos(A) É MAIS RImagens(B)
               O GIT                          Diff
        Add, commit e push 113 arquivos     Add, commit e push de 1000 imagens de          Diff de 187 arquivos alterados locais
                modificados                                  1Kb                                  contra o último commit.
                                                                                                                      1.09
    3                          2.6            30                          24.7             1.1
 2.25                                        22.5                                       0.825
  1.5                                         15                                         0.55

                        4x                                        16x                                          4x
                 0.64                                                                                   0.25
 0.75                                         7.5          1.53                         0.275
    0                                           0                                            0
                  git          svn                         git            svn                            git          svn
           Diff Arquivos                                                                                Update
                                                        Diff Tags
Diff entre versão atual e outra 4 commits                                                        Pull do cenário do Commit A
                                            Diff entre duas tags (v1.9.1.0/v1.9.3.0 )
          atrás (269 alterados)                                                                     (113 arquivos alterados)
                              3.99                                      83.57                                         2.82
   4                                         90                                             3
   3                                        67.5                                         2.25

                        16x                                       71x                                          3x
   2                                         45                                           1.5            0.9
   1            0.25                        22.5          1.17
                                                                                         0.75
   0                                           0                                            0
                 git          svn                         git            svn                             git          svn
                                                                                                                             http://git-scm.com/
PEQUENO E RÁPIDO
          Log (Todos)GIT É MAIS RÁPIDO
                   O                    QUE O SVN
                                              Log (Arquivo)
                               Log (50)
        Log de todos os commits                                              Log do histórico de um arquivo (array.c -
                                                Log dos últimos 50 commits
          (26.056 commits)                                                               483 revissões)
 200                                      0.4                       0.38      90                         82.84
                            169.2
 150                                      0.3                                67.5
 100                                      0.2                                 45
  50
   0            325x
              0.52
                                          0.1
                                            0
                                                       0.01   31x            22.5
                                                                                0
                                                                                           0.6   138x
               git          svn                        git          svn                    git            svn

              Blame
Anotações em um único arquivo (array.c)

  4                        3.04
  3

                     1x
             1.91
  2
  1
  0
              git          svn
                                                                                                                 http://git-scm.com/
#3     DISTRIBUIDO
Em vez de fazer um "check-out" da situação atual do código fonte, você faz um "clone" de
todo o repositório.
DISTRIBUÍDO




                 Backups Múltiplos
 Mesmo se você estiver usando um fluxo de trabalho centralizado,     Qualquer Fluxo de trabalho
 cada usuário terá um backup completo do servidor principal. Cada    Por causa da natureza distribuída e do sistema
 uma dessas cópias pode substituir o servidor principal em caso de   de ramificação do Git, um número quase infinito
um acidente ou de corrupção. Como efeito, não há um ponto único de    de fluxos de trabalho pode ser implementado
    falha com Git a menos que haja apenas uma única cópia do                     com relativa facilidade.
                           repositório.
                                                                                                                 http://git-scm.com/
DISTRIBUÍDO




   Fluxo de trabalho ao
    estilo Subversion
Um fluxo de trabalho centralizado é muito
    comum, especialmente de pessoas
 transitando de um sistema centralizado.

                                            http://git-scm.com/
DISTRIBUÍDO
                                                                                                        C E1
                                                                                                 SOUR
                                                                                         OP EN
                                                                               JE TO
                                                                            PRO
                                                                                                        origem

                                                                                              origem
                                                                PR
                                                                     OJ
                                                                       ET
                                                                          OO
                                                                                PE
                                                                                  NS
                                                                                    OU
                                                                                         RC
Fluxo de trabalho distribuido                                                              E2
     e descentralizado                                     origem
 Para equipes que se sobrepõem a uma estrutura
formal de times, o modelo distribuído permite uma
 organização colaborativa simples e organizada.                                 origem
                                                                                                               http://git-scm.com/
DISTRIBUÍDO

                                                    fetch
                                     origem




                                                                    localhost

                                                              merge
                   PULL
O comando pull realiza as duas operações, realiza
primeiro um fetch trazendo todos os arquivos e em
  seguida realiza um merge com o seu repositório
                       local.
                                                    {
                                                    origin/master
                                                                      +
                                                                                master
                                                                                         http://git-scm.com/
DISTRIBUÍDO

                                       push
                  origem


                                                                        $git push notebook projeto1

               $git push origem projeto1             localhost




                   PUSH                                          push            notebook

   O comando push realiza o envio do pacote de
informações do repositório local para o seu par no
 servidor desejado. Mesmo que o repositório não
          exista no servidor em questão.
                                                                                                      http://git-scm.com/
#4     GARANTIA DE INTEGRIDADE
É impossível obter qualquer coisa dentro do Git além dos bits exatos que você colocar
GARANTIA DE INTEGRIDADE




                       Integridade Criptográfica
 O modelo de dados que o Git usa garante a integridade criptográfica de todos os bits de
   seu projeto. Sobre cada arquivo e commit é gerado um checksum e sempre que se for
recuperar e realizada a conferencia. É impossível obter qualquer coisa fora do Git além dos
                             bits exatos você colocar dentro.

                                                                                              http://git-scm.com/
#5     ÁREA DE CONFERÊNCIA
Coomits podem ser formatados e revisados antes de completar a submissão.
ÁREA DE CONFERÊNCIA




                                  Staging Area
Git tem algo chamado de staging area ou índice, que serve como área intermediária onde
  os commits podem ser formatados e revisados antes de completar a submissão. Desta
  forma é possível rapidamente alterar alguns de seus arquivos e comitá-los sem comitar
todos os outros modificados em seu diretório de trabalho, ou ainda ter que listá-los durante
                                      a confirmação.
                                                                                               http://git-scm.com/
#6     GRATUITO
Use o Git em projetos abertos ou proprietários de graça, para sempre.
GRATUITO




Sob licença de software livre GPLv2 é possível
  Usar o Git em projetos abertos ou proprietário de graça, para sempre;
   Utilizar os binários do Git em programas abertos ou proprietários;



                                                                          http://git-scm.com/
#7     CÓDIGO ABERTO
Baixe, inspecionar e modificar o código-fonte do Git.
CÓDIGO ABERTO




Sob licença de software livre GPLv2 é possível
              Baixar, inspecionar e modificar o código-fonte do Git;
  Fazer alterações proprietárias no Git que você não redistribua publicamente;
redistribuir publicamente binários do Git com programas abertos ou proprietários
                       desde que os mesmo sejam públicos;


                                                                                   http://git-scm.com/
Fontes:

Obrigado!
                Pro Git - Scott Chacon

 @helmedeiros
                Imagens:
                http://git-scm.com/

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

git: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertogit: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código aberto
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em pazViajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantes
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Git that like a boss - Dos comandos básicos aos branches.
Git that like a boss - Dos comandos básicos aos branches.Git that like a boss - Dos comandos básicos aos branches.
Git that like a boss - Dos comandos básicos aos branches.
 
Introdução ao Git - Semac 2016
Introdução ao Git - Semac 2016Introdução ao Git - Semac 2016
Introdução ao Git - Semac 2016
 
Seja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodeSeja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccode
 
Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson Ajackson
 
Docker volumes
Docker volumesDocker volumes
Docker volumes
 
Git + git hub
Git + git hubGit + git hub
Git + git hub
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Git Rápido e Fácil
Git Rápido e FácilGit Rápido e Fácil
Git Rápido e Fácil
 
Git
GitGit
Git
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 

Semelhante a git --controle-de-versão-rápido

Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
joaogmaciel
 
Por que investir em performance Front-End?
Por que investir em performance Front-End?Por que investir em performance Front-End?
Por que investir em performance Front-End?
Luiz Oliveira
 
Desenvolvimento organizado com VCS
Desenvolvimento organizado com VCSDesenvolvimento organizado com VCS
Desenvolvimento organizado com VCS
yogarine
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
Cezinha Anjos
 

Semelhante a git --controle-de-versão-rápido (20)

git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)
 
Git v2
Git v2Git v2
Git v2
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud Native
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
 
Por que investir em performance Front-End?
Por que investir em performance Front-End?Por que investir em performance Front-End?
Por que investir em performance Front-End?
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)Gitlab flow solo (pt-BR)
Gitlab flow solo (pt-BR)
 
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
[JS EXPERIENCE 2018] Do jQuery aos microfrontends: os desafios de manter uma ...
 
Desenvolvimento organizado com VCS
Desenvolvimento organizado com VCSDesenvolvimento organizado com VCS
Desenvolvimento organizado com VCS
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
 
Git 101
Git 101Git 101
Git 101
 
Começando com Git
Começando com GitComeçando com Git
Começando com Git
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
 
Continuous Delivery com ArgoCD
Continuous Delivery com ArgoCDContinuous Delivery com ArgoCD
Continuous Delivery com ArgoCD
 
Praticando o Desapego: quando ignorar a dívida técnica
Praticando o Desapego: quando ignorar a dívida técnicaPraticando o Desapego: quando ignorar a dívida técnica
Praticando o Desapego: quando ignorar a dívida técnica
 

Mais de Hélio Medeiros

Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...
Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...
Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...
Hélio Medeiros
 
Agile Brazil 2013 - Sucesso na medida certa – métricas de vaidade
Agile Brazil 2013 - Sucesso na medida certa – métricas de vaidadeAgile Brazil 2013 - Sucesso na medida certa – métricas de vaidade
Agile Brazil 2013 - Sucesso na medida certa – métricas de vaidade
Hélio Medeiros
 

Mais de Hélio Medeiros (20)

Team building - Workshop - ThoughtWorks Away Day 2018
Team building - Workshop - ThoughtWorks Away Day 2018Team building - Workshop - ThoughtWorks Away Day 2018
Team building - Workshop - ThoughtWorks Away Day 2018
 
Team building praticas e atividades
Team building   praticas e atividadesTeam building   praticas e atividades
Team building praticas e atividades
 
Historias, hipoteses e metricas aprendendo no dia a dia
Historias, hipoteses e metricas   aprendendo no dia a diaHistorias, hipoteses e metricas   aprendendo no dia a dia
Historias, hipoteses e metricas aprendendo no dia a dia
 
Team building - Software depende de relacionamento
Team building  - Software depende de relacionamentoTeam building  - Software depende de relacionamento
Team building - Software depende de relacionamento
 
Continuidade de times - quando os relacionamentos contam?
Continuidade de times - quando os relacionamentos contam?Continuidade de times - quando os relacionamentos contam?
Continuidade de times - quando os relacionamentos contam?
 
Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...
Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...
Historias sao suposicoes: build:measure:learn no kanban e livro de possibilid...
 
Faça Frameworks, Não faça refens
Faça Frameworks, Não faça refensFaça Frameworks, Não faça refens
Faça Frameworks, Não faça refens
 
Feature injection - descobrindo e entregando valor testável
Feature injection - descobrindo e entregando valor testávelFeature injection - descobrindo e entregando valor testável
Feature injection - descobrindo e entregando valor testável
 
Growth hacking - customer lifecycle na pratica
Growth hacking - customer lifecycle na praticaGrowth hacking - customer lifecycle na pratica
Growth hacking - customer lifecycle na pratica
 
Tdc growth hacking-customer lifecycle na pratica
Tdc   growth hacking-customer lifecycle na praticaTdc   growth hacking-customer lifecycle na pratica
Tdc growth hacking-customer lifecycle na pratica
 
A Jornada de um desenvolvedor de Princípios SOLID em um mundo de micro-services
A Jornada de um desenvolvedor de Princípios SOLID em um mundo de micro-servicesA Jornada de um desenvolvedor de Princípios SOLID em um mundo de micro-services
A Jornada de um desenvolvedor de Princípios SOLID em um mundo de micro-services
 
Feature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testávelFeature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testável
 
Um desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDUm desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLID
 
RBS QCon São Paulo 2014 REVIEW
RBS QCon São Paulo 2014 REVIEWRBS QCon São Paulo 2014 REVIEW
RBS QCon São Paulo 2014 REVIEW
 
RBS Agile Brazil Review - Managing dojo
RBS Agile Brazil Review - Managing dojoRBS Agile Brazil Review - Managing dojo
RBS Agile Brazil Review - Managing dojo
 
RBS Agile Brazil 2013 Review - HotSpot
RBS Agile Brazil 2013 Review - HotSpotRBS Agile Brazil 2013 Review - HotSpot
RBS Agile Brazil 2013 Review - HotSpot
 
Agile brazil 2013 - Laboratório Experimental refinando ideias e lançando prod...
Agile brazil 2013 - Laboratório Experimental refinando ideias e lançando prod...Agile brazil 2013 - Laboratório Experimental refinando ideias e lançando prod...
Agile brazil 2013 - Laboratório Experimental refinando ideias e lançando prod...
 
Agile Brazil 2013 - Sucesso na medida certa – métricas de vaidade
Agile Brazil 2013 - Sucesso na medida certa – métricas de vaidadeAgile Brazil 2013 - Sucesso na medida certa – métricas de vaidade
Agile Brazil 2013 - Sucesso na medida certa – métricas de vaidade
 
Cache em serviços rest com java (jax-rs)
Cache em serviços rest com java (jax-rs)Cache em serviços rest com java (jax-rs)
Cache em serviços rest com java (jax-rs)
 
Ideias em produção - métricas de vaidade não são para piratas
Ideias em produção - métricas de vaidade não são para piratasIdeias em produção - métricas de vaidade não são para piratas
Ideias em produção - métricas de vaidade não são para piratas
 

git --controle-de-versão-rápido

  • 1. ráp ido rsã o- d e- ve tro le- --con iza do ent ral ov o-c o -é- o-n rib uid --d ist uro --fáci l-br anch - -seg @helmedeiros l-m erge -- fáci -lo cal --tudo-é
  • 2. Git é sistema de controle de versão distribuído livre e de código aberto, projetado para lidar com tudo, de pequenos a grandes projetos, com velocidade e eficiência. http://git-scm.com/
  • 3. !=
  • 4. Considerando a visão de LINUS TORVALDS “cvs ou baseado “controle de em suas versão do jeito que primitivas?” ele realmente deveria ser”
  • 5. TALVEZ, NÃO SEJA UM BOM PONTO DE PARTIDA... BLASFEMAR SOBRE OS SISTEMAS DE CONTROLE DE VERSÃO USADOS... MAS... HUMMM... PRECISAMOS IR EM FRENTE!
  • 6. branching e pequeno e garantia de distribuido merging rápido integridade área de gratuito código aberto conferência Quais são as vantagens? http://git-scm.com/
  • 7. trunk cria tag local branch usando SIM avisou? SIM trunk? trunk dev reintegrate cria trunk TAG? branch trunk NÃO tag prod cria homol NÃO restaura tag trunk ok? #1 BRANCHING E MERGING Git permite e incentiva a criação de vários branchs locais, que podem ser totalmente independentes um do outro.
  • 8. BRANCHING E MERGING Alternância de contexto sem atrito Criar um branch para testar uma idéia, comitar algumas vezes, voltar para onde você iniciou, aplicar um patch, voltar para onde você estava experimentando, e mesclá-los! Linhas de versionamento especifica Ter uma linha de versionamento que sempre contém apenas o que vai para a produção, outra que você mescle para testes, e várias outras menores para o dia a dia de trabalho. Workflow baseado em funcionalidades Criar um novo branch para cada nova funcionalidade que vai trabalhar, para que você possa facilmente alternar entre eles, em seguida, exclua cada linha de versionamento quando essa funcionalidade for incorporada a sua linha principal. Experimentação descartável Criar um branch para experimentar, perceber que não resolverá o problema, e apenas excluí-lo - abandonar o trabalho sem que ninguém tenha o visto. http://git-scm.com/
  • 9. #2 PEQUENO E RÁPIDO Git é rápido. Com o Git, quase todas as operações são realizadas localmente, dando-lhe uma vantagem enorme
  • 10. PEQUENO E RÁPIDO Commit Arquivos(A) Commit Imagens(B) Diff Local Add, commit e push 113 arquivos Add, commit e push de 1000 imagens de Diff de 187 arquivos alterados locais modificados 1Kb contra o último commit. 1.09 3 2.6 30 24.7 1.1 2.25 22.5 0.825 1.5 15 0.55 0.64 0.25 0.75 7.5 1.53 0.275 0 0 0 git svn git svn git svn Diff Arquivos Update Diff Tags Diff entre versão atual e outra 4 commits Pull do cenário do Commit A Diff entre duas tags (v1.9.1.0/v1.9.3.0 ) atrás (269 alterados) (113 arquivos alterados) 3.99 83.57 2.82 4 90 3 3 67.5 2.25 2 45 1.5 0.9 1 0.25 22.5 1.17 0.75 0 0 0 git svn git svn git svn http://git-scm.com/
  • 11. PEQUENO E RÁPIDO Log (Todos) Log (Arquivo) Log (50) Log de todos os commits Log do histórico de um arquivo (array.c - Log dos últimos 50 commits (26.056 commits) 483 revissões) 200 0.4 0.38 90 82.84 169.2 150 0.3 67.5 100 0.2 45 50 0.1 0.01 22.5 0.52 0.6 0 0 0 git svn git svn git svn Blame Anotações em um único arquivo (array.c) 4 3.04 3 1.91 2 1 0 git svn http://git-scm.com/
  • 12. PEQUENO E RÁPIDO Commit ÁPIDO QUE O SVN Local Commit Arquivos(A) É MAIS RImagens(B) O GIT Diff Add, commit e push 113 arquivos Add, commit e push de 1000 imagens de Diff de 187 arquivos alterados locais modificados 1Kb contra o último commit. 1.09 3 2.6 30 24.7 1.1 2.25 22.5 0.825 1.5 15 0.55 4x 16x 4x 0.64 0.25 0.75 7.5 1.53 0.275 0 0 0 git svn git svn git svn Diff Arquivos Update Diff Tags Diff entre versão atual e outra 4 commits Pull do cenário do Commit A Diff entre duas tags (v1.9.1.0/v1.9.3.0 ) atrás (269 alterados) (113 arquivos alterados) 3.99 83.57 2.82 4 90 3 3 67.5 2.25 16x 71x 3x 2 45 1.5 0.9 1 0.25 22.5 1.17 0.75 0 0 0 git svn git svn git svn http://git-scm.com/
  • 13. PEQUENO E RÁPIDO Log (Todos)GIT É MAIS RÁPIDO O QUE O SVN Log (Arquivo) Log (50) Log de todos os commits Log do histórico de um arquivo (array.c - Log dos últimos 50 commits (26.056 commits) 483 revissões) 200 0.4 0.38 90 82.84 169.2 150 0.3 67.5 100 0.2 45 50 0 325x 0.52 0.1 0 0.01 31x 22.5 0 0.6 138x git svn git svn git svn Blame Anotações em um único arquivo (array.c) 4 3.04 3 1x 1.91 2 1 0 git svn http://git-scm.com/
  • 14. #3 DISTRIBUIDO Em vez de fazer um "check-out" da situação atual do código fonte, você faz um "clone" de todo o repositório.
  • 15. DISTRIBUÍDO Backups Múltiplos Mesmo se você estiver usando um fluxo de trabalho centralizado, Qualquer Fluxo de trabalho cada usuário terá um backup completo do servidor principal. Cada Por causa da natureza distribuída e do sistema uma dessas cópias pode substituir o servidor principal em caso de de ramificação do Git, um número quase infinito um acidente ou de corrupção. Como efeito, não há um ponto único de de fluxos de trabalho pode ser implementado falha com Git a menos que haja apenas uma única cópia do com relativa facilidade. repositório. http://git-scm.com/
  • 16. DISTRIBUÍDO Fluxo de trabalho ao estilo Subversion Um fluxo de trabalho centralizado é muito comum, especialmente de pessoas transitando de um sistema centralizado. http://git-scm.com/
  • 17. DISTRIBUÍDO C E1 SOUR OP EN JE TO PRO origem origem PR OJ ET OO PE NS OU RC Fluxo de trabalho distribuido E2 e descentralizado origem Para equipes que se sobrepõem a uma estrutura formal de times, o modelo distribuído permite uma organização colaborativa simples e organizada. origem http://git-scm.com/
  • 18. DISTRIBUÍDO fetch origem localhost merge PULL O comando pull realiza as duas operações, realiza primeiro um fetch trazendo todos os arquivos e em seguida realiza um merge com o seu repositório local. { origin/master + master http://git-scm.com/
  • 19. DISTRIBUÍDO push origem $git push notebook projeto1 $git push origem projeto1 localhost PUSH push notebook O comando push realiza o envio do pacote de informações do repositório local para o seu par no servidor desejado. Mesmo que o repositório não exista no servidor em questão. http://git-scm.com/
  • 20. #4 GARANTIA DE INTEGRIDADE É impossível obter qualquer coisa dentro do Git além dos bits exatos que você colocar
  • 21. GARANTIA DE INTEGRIDADE Integridade Criptográfica O modelo de dados que o Git usa garante a integridade criptográfica de todos os bits de seu projeto. Sobre cada arquivo e commit é gerado um checksum e sempre que se for recuperar e realizada a conferencia. É impossível obter qualquer coisa fora do Git além dos bits exatos você colocar dentro. http://git-scm.com/
  • 22. #5 ÁREA DE CONFERÊNCIA Coomits podem ser formatados e revisados antes de completar a submissão.
  • 23. ÁREA DE CONFERÊNCIA Staging Area Git tem algo chamado de staging area ou índice, que serve como área intermediária onde os commits podem ser formatados e revisados antes de completar a submissão. Desta forma é possível rapidamente alterar alguns de seus arquivos e comitá-los sem comitar todos os outros modificados em seu diretório de trabalho, ou ainda ter que listá-los durante a confirmação. http://git-scm.com/
  • 24. #6 GRATUITO Use o Git em projetos abertos ou proprietários de graça, para sempre.
  • 25. GRATUITO Sob licença de software livre GPLv2 é possível Usar o Git em projetos abertos ou proprietário de graça, para sempre; Utilizar os binários do Git em programas abertos ou proprietários; http://git-scm.com/
  • 26. #7 CÓDIGO ABERTO Baixe, inspecionar e modificar o código-fonte do Git.
  • 27. CÓDIGO ABERTO Sob licença de software livre GPLv2 é possível Baixar, inspecionar e modificar o código-fonte do Git; Fazer alterações proprietárias no Git que você não redistribua publicamente; redistribuir publicamente binários do Git com programas abertos ou proprietários desde que os mesmo sejam públicos; http://git-scm.com/
  • 28. Fontes: Obrigado! Pro Git - Scott Chacon @helmedeiros Imagens: http://git-scm.com/