SlideShare uma empresa Scribd logo
Controle de versão com
           GIT

Paulo César M Jeveaux
@jeveaux
jeveaux.com
Controle de versão com GIT
controlar versão
de código, Batman, pra que
           isso?
controlar versão
        de código, Batman, pra que
ouch!              isso?
controlar versão
                                de código, Batman, pra que
                        ouch!              isso?




Robin, como você controla
  as alterações do seu
         código?

 E como você controla as
 versões do seu produto?

E o hitórico de tudo isso?
• Open Source
      • Criado por Linus Torvalds


git
      • Necessidade de manter o
        controle de versão do
        código do Kernel do Linux
      • Mantido por Junio Hamano
      • Para projetos P, M, G e XG
      • Sistema de controle de
        versões distribuído!
• Desenvolvimento distribuído
      • Rápido!

git   • Branches e merges sem dor
        e forma simples
      • Rápido!
      • Eficiente e simples
      • Comunidade forte
      • Rápido!
alguém
usa isso?
alguém
                         usa isso?




Linux Kernel   Android         X.org


    Perl       Fedora      PostgreSQL


  gnome        Debian    ...muitos outros
Conceito
centralizado X distribuído
centralizado
•   repositório único e centralizado
•   commit só por usuário com permissão


                              dev n

     repositório
                              dev 3

                     dev 2

            dev 1
centralizado
   •   repositório único e centralizado
   •   commit só por usuário com permissão


                                 dev n

          repositório
                                 dev 3
 históricos,
  commits,              dev 2
branches, etc
                dev 1
centralizado
   •   repositório único e centralizado
   •   commit só por usuário com permissão


                                   dev n

          repositório
                                   dev 3
 históricos,
  commits,              dev 2
branches, etc
                dev 1


                          checkout no dia N
centralizado
   •   repositório único e centralizado
   •   commit só por usuário com permissão


                                   dev n

          repositório
                                   dev 3
 históricos,
  commits,              dev 2
branches, etc
                                      checkout no dia N+1
                dev 1
                                        diferente do dev 1


                          checkout no dia N
centralizado
   •   repositório único e centralizado
   •   commit só por usuário com permissão


                                   dev n

          repositório
                                   dev 3
                                                  checkout no dia N+2
 históricos,
                                                  diferente do dev 1 e 2
  commits,              dev 2
branches, etc
                                      checkout no dia N+1
                dev 1
                                        diferente do dev 1


                          checkout no dia N
centralizado
   •   repositório único e centralizado
   •   commit só por usuário com permissão


                                   dev n

          repositório                               checkout no dia N+3
                                                   diferente do dev 1, 2 e 3

                                   dev 3
                                                  checkout no dia N+2
 históricos,
                                                  diferente do dev 1 e 2
  commits,              dev 2
branches, etc
                                      checkout no dia N+1
                dev 1
                                        diferente do dev 1


                          checkout no dia N
distribuído
•   cada cópia é um repositório completo
•   histórico completo e total
•   commit local {on|off}line
•   commits podem ser transferidos entre repositórios
    de forma simples com pull ou push

                    dev 3

    dev 1


                            dev n

            dev 2
distribuído
•   cada cópia é um repositório completo
•   histórico completo e total
•   commit local {on|off}line
•   commits podem ser transferidos entre repositórios
    de forma simples com pull ou push

                    dev 3

    dev 1


                            dev n     uma nova cópia pode ser
                                    feita de qualquer repositório
            dev 2
distribuído
•   cada cópia é um repositório completo
•   histórico completo e total
•   commit local {on|off}line
•   commits podem ser transferidos entre repositórios
    de forma simples com pull ou push

                    dev 3

    dev 1                           commits podem ser transferidos
                                       por todos repositórios

                            dev n         uma nova cópia pode ser
                                        feita de qualquer repositório
            dev 2
você pode fazer commit de
qualquer lugar, até no avião!
você pode fazer commit de
qualquer lugar, até no avião!




         RLY?
branches
• rápido!
• muito rápido!
• branches locais baratas
• branches também podem ser remotas (github)
• merge super poderoso
• uma branch para cada feature/história/bug/etc
histórico   merge

  logs       pull

  diffs     push

commits      tag
stash


 index


 bisect


GIT-SVN
eu ti l i dades
   rramen tas
fe
o terminal é
seu amigo :)
gitk
tower
... e muitas outras
          ferramentas
• gitnub
• qgit
• git-gui
• tortoise-git
• ...
github
Controle de versão com GIT
comunidade em
torno de código
 muitos projetos
  open source
   serve para
projetos privados
funciona! funciona
   muito bem!
grátis para open    comunidade em
     source         torno de código
fork de maneira      muitos projetos
  fácil e rápida      open source
 facilita muito a      serve para
   colaboração      projetos privados
é o queridinho na   funciona! funciona
   comunidade          muito bem!
reddit
 Ruby on Rails
                         curl
           jQuery
                     CakePHP
            Redis
                       django
           node.js
                     mongodb
Quem usa
 github
Servidor GIT privado

            • gratuito
gitorious   • open source
            • pode ser usado também
             online como o github,
             também gratuito
muitas opções

• gitosis
• codebasehq
• repo.or.cz
• gitorious
• ...
Para o alto e avante




  akitaonrails.com/screencasts
dúvidas?
Referências

• git-scm.org
• github.com/guides/home
• akitaonrails.com
• “Git: controle de versão de jeito certo” -
  por Arthur Zapparoli
Controle de versão com
           GIT

Paulo César M Jeveaux
@jeveaux
jeveaux.com

Mais conteúdo relacionado

PDF
O poder do Docker (7 Masters)
PDF
Apresentação docker
PDF
TDC 2015 POA - O Fantástico Mundo de Docker
PDF
O que é docker?
PDF
Verdades que não querem te contar sobre Docker
PPTX
Introdução ao docker
PDF
Docker, facilitando a vida do desenvolvimento
PPTX
Introdução a Containers Docker
O poder do Docker (7 Masters)
Apresentação docker
TDC 2015 POA - O Fantástico Mundo de Docker
O que é docker?
Verdades que não querem te contar sobre Docker
Introdução ao docker
Docker, facilitando a vida do desenvolvimento
Introdução a Containers Docker

Mais procurados (20)

PDF
Talk no Meetup LaravelSP #3
PDF
Docker: uma visão geral
PDF
Git Básico
PDF
TDC 2016 Floripa - Workshop docker
PDF
Vagrant vs docker? Melhor vagrant + docker
PDF
Troubleshooting docker
PDF
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
PDF
Docker na vida real
PDF
TDC2018SP | Trilha Containers - Linux Conteineres na unha
PDF
Bem vindo ao Docker
PDF
Apresentacao docker
PDF
Linux Containers: do que são feitos? de onde vem? quem os alimenta?
PDF
Desenvolvendo com PHP e Docker
PPTX
Conheça o Docker
ODP
Docker: uma visão geral e exemplos de uso
PDF
Apresentação Docker
PDF
5. rodando containers docker na aws
PDF
Primeiros passos com o Docker
PDF
Desenvolvendo e implantando aplicações PHP utilizando Docker
PPTX
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Talk no Meetup LaravelSP #3
Docker: uma visão geral
Git Básico
TDC 2016 Floripa - Workshop docker
Vagrant vs docker? Melhor vagrant + docker
Troubleshooting docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
Docker na vida real
TDC2018SP | Trilha Containers - Linux Conteineres na unha
Bem vindo ao Docker
Apresentacao docker
Linux Containers: do que são feitos? de onde vem? quem os alimenta?
Desenvolvendo com PHP e Docker
Conheça o Docker
Docker: uma visão geral e exemplos de uso
Apresentação Docker
5. rodando containers docker na aws
Primeiros passos com o Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Anúncio

Destaque (20)

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

Semelhante a Controle de versão com GIT (20)

KEY
Go git - Presentation @Navita
PDF
SVN: Controle de revisões com subversion - Thiago Rafael Becker
PDF
Subvertendo o codigo PHP com SVN - ENSOL
PDF
Docker + Django
PPTX
Hubot deployments
PPT
Introdução a Application Life-cycle Management Open Source
PPT
Apresentacao git
PDF
Subvertendo o código PHP com SVN
KEY
Git para quem vem do SVN
KEY
Como colaborar com projetos opensource com o GitHub
PDF
7Masters - Devops - Do legado ao ci cd em 7 minutos
PDF
Docker.io:
PPTX
Entendendo a linkedição em C++
KEY
Integração Contínua com Hudson
PDF
Git e a importância de versionar um projeto
PPTX
PPTX
.Net Core + Docker
PDF
Workshop ExtJS4
PPTX
Git - Controle de Versão Inteligente
PDF
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
Go git - Presentation @Navita
SVN: Controle de revisões com subversion - Thiago Rafael Becker
Subvertendo o codigo PHP com SVN - ENSOL
Docker + Django
Hubot deployments
Introdução a Application Life-cycle Management Open Source
Apresentacao git
Subvertendo o código PHP com SVN
Git para quem vem do SVN
Como colaborar com projetos opensource com o GitHub
7Masters - Devops - Do legado ao ci cd em 7 minutos
Docker.io:
Entendendo a linkedição em C++
Integração Contínua com Hudson
Git e a importância de versionar um projeto
.Net Core + Docker
Workshop ExtJS4
Git - Controle de Versão Inteligente
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers

Mais de Paulo César M Jeveaux (20)

PDF
Empreendedorismo além do mundo da fantasia
PDF
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
PDF
E-commerce Além dos Sites
PDF
Resenha Rework por Jeveaux
PDF
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
PDF
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
PDF
Desafios no e-commerce brasileiro
PDF
Desenvolvimento Ágil de Software com SCRUM
PDF
Negociação de contratos de projetos de software
PDF
Desenvolvimento Ágil de Software com SCRUM
PDF
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
PDF
Palestra Testes De Unidade Com JUnit
PDF
Extreme Programming - XP
PDF
Desenvolvimento Ágil com SCRUM
PDF
Certificação Digital
PDF
AOP - JustJava - 2005
PDF
AOP - ESJUG - 2005
PDF
Comunidades Virtuais Java - Conexão Java - 2004
PDF
Ruby On Rails
PPT
JGoodies - Conexão Java 2005
Empreendedorismo além do mundo da fantasia
Case Giran 2011: os desafios no uso de práticas ágeis no dia-a-dia de uma sta...
E-commerce Além dos Sites
Resenha Rework por Jeveaux
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
SCRUM e XP - Desenvolvimento Ágil de Software - Experiências e relatos
Desafios no e-commerce brasileiro
Desenvolvimento Ágil de Software com SCRUM
Negociação de contratos de projetos de software
Desenvolvimento Ágil de Software com SCRUM
Turbinando sua aplicação com Lucene, Solr e Hibernate Search
Palestra Testes De Unidade Com JUnit
Extreme Programming - XP
Desenvolvimento Ágil com SCRUM
Certificação Digital
AOP - JustJava - 2005
AOP - ESJUG - 2005
Comunidades Virtuais Java - Conexão Java - 2004
Ruby On Rails
JGoodies - Conexão Java 2005

Último (19)

PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Apple Pippin Uma breve introdução. - David Glotz
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula04-Academia Heri- Tecnologia Geral 2025
COBITxITIL-Entenda as diferença em uso governança TI
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Aula 18 - Manipulacao De Arquivos python
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Processos na gestão de transportes, TM100 Col18
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx

Controle de versão com GIT

  • 1. Controle de versão com GIT Paulo César M Jeveaux @jeveaux jeveaux.com
  • 3. controlar versão de código, Batman, pra que isso?
  • 4. controlar versão de código, Batman, pra que ouch! isso?
  • 5. controlar versão de código, Batman, pra que ouch! isso? Robin, como você controla as alterações do seu código? E como você controla as versões do seu produto? E o hitórico de tudo isso?
  • 6. • Open Source • Criado por Linus Torvalds git • Necessidade de manter o controle de versão do código do Kernel do Linux • Mantido por Junio Hamano • Para projetos P, M, G e XG • Sistema de controle de versões distribuído!
  • 7. • Desenvolvimento distribuído • Rápido! git • Branches e merges sem dor e forma simples • Rápido! • Eficiente e simples • Comunidade forte • Rápido!
  • 9. alguém usa isso? Linux Kernel Android X.org Perl Fedora PostgreSQL gnome Debian ...muitos outros
  • 11. centralizado • repositório único e centralizado • commit só por usuário com permissão dev n repositório dev 3 dev 2 dev 1
  • 12. centralizado • repositório único e centralizado • commit só por usuário com permissão dev n repositório dev 3 históricos, commits, dev 2 branches, etc dev 1
  • 13. centralizado • repositório único e centralizado • commit só por usuário com permissão dev n repositório dev 3 históricos, commits, dev 2 branches, etc dev 1 checkout no dia N
  • 14. centralizado • repositório único e centralizado • commit só por usuário com permissão dev n repositório dev 3 históricos, commits, dev 2 branches, etc checkout no dia N+1 dev 1 diferente do dev 1 checkout no dia N
  • 15. centralizado • repositório único e centralizado • commit só por usuário com permissão dev n repositório dev 3 checkout no dia N+2 históricos, diferente do dev 1 e 2 commits, dev 2 branches, etc checkout no dia N+1 dev 1 diferente do dev 1 checkout no dia N
  • 16. centralizado • repositório único e centralizado • commit só por usuário com permissão dev n repositório checkout no dia N+3 diferente do dev 1, 2 e 3 dev 3 checkout no dia N+2 históricos, diferente do dev 1 e 2 commits, dev 2 branches, etc checkout no dia N+1 dev 1 diferente do dev 1 checkout no dia N
  • 17. distribuído • cada cópia é um repositório completo • histórico completo e total • commit local {on|off}line • commits podem ser transferidos entre repositórios de forma simples com pull ou push dev 3 dev 1 dev n dev 2
  • 18. distribuído • cada cópia é um repositório completo • histórico completo e total • commit local {on|off}line • commits podem ser transferidos entre repositórios de forma simples com pull ou push dev 3 dev 1 dev n uma nova cópia pode ser feita de qualquer repositório dev 2
  • 19. distribuído • cada cópia é um repositório completo • histórico completo e total • commit local {on|off}line • commits podem ser transferidos entre repositórios de forma simples com pull ou push dev 3 dev 1 commits podem ser transferidos por todos repositórios dev n uma nova cópia pode ser feita de qualquer repositório dev 2
  • 20. você pode fazer commit de qualquer lugar, até no avião!
  • 21. você pode fazer commit de qualquer lugar, até no avião! RLY?
  • 23. • rápido! • muito rápido! • branches locais baratas • branches também podem ser remotas (github) • merge super poderoso • uma branch para cada feature/história/bug/etc
  • 24. histórico merge logs pull diffs push commits tag
  • 26. eu ti l i dades rramen tas fe
  • 27. o terminal é seu amigo :)
  • 28. gitk
  • 29. tower
  • 30. ... e muitas outras ferramentas • gitnub • qgit • git-gui • tortoise-git • ...
  • 33. comunidade em torno de código muitos projetos open source serve para projetos privados funciona! funciona muito bem!
  • 34. grátis para open comunidade em source torno de código fork de maneira muitos projetos fácil e rápida open source facilita muito a serve para colaboração projetos privados é o queridinho na funciona! funciona comunidade muito bem!
  • 35. reddit Ruby on Rails curl jQuery CakePHP Redis django node.js mongodb Quem usa github
  • 36. Servidor GIT privado • gratuito gitorious • open source • pode ser usado também online como o github, também gratuito
  • 37. muitas opções • gitosis • codebasehq • repo.or.cz • gitorious • ...
  • 38. Para o alto e avante akitaonrails.com/screencasts
  • 40. Referências • git-scm.org • github.com/guides/home • akitaonrails.com • “Git: controle de versão de jeito certo” - por Arthur Zapparoli
  • 41. Controle de versão com GIT Paulo César M Jeveaux @jeveaux jeveaux.com