SlideShare una empresa de Scribd logo
1 de 39
Controle de Versão 
Inteligente 
por Adriano Rocha
O que é Controle de Versão? 
• É a forma inteligente de 
manter uma copia segura 
dos arquivos de um projeto. 
• Permite que você altere um 
arquivo e, se fizer algo de 
errado, volte atras. 
• Guarda as informações de quem fez ou desfez uma 
funcionalidade.
…ou seja… 
Se você fizer algo de errado… 
…saberemos que foi você!
Controle de Versão 
Local 
• Primeiro utilizava-se de copiar arquivos em pastas.
Controle de Versão 
Local 
• Depois foi criada uma estratégia 
de guardar as mudanças em 
banco de dados 
• RCS foi a ferramenta de 
controle de versão mais 
conhecida no mundo, no 
entanto ela trabalhava apenas 
com arquivos individuais e não 
com grupo de arquivos 
(projetos)
Sistema de Controle de 
Versão Centralizado 
As versões dos arquivos 
são armazenadas em 
um servidor 
Os usuários copiam esses 
arquivos, alteram e 
mandam novamente para 
o servidor, bem como 
copiam as alterações de 
outros usuários
Sistema de Controle de 
Versão Centralizado 
Desvantagens 
• Os arquivos estão centralizados no servidor. 
• É necessário estar conectado a rede do servidor 
para efetuar o “commit” das suas alterações 
• Se você estiver fora da rede os 
arquivos não estão mais sobre o 
controle de versão
Sistema de Controle de 
Versão Distribuído 
Quando você conecta ao 
repositório você adquire uma 
copia completa, com todas as 
revisões dos arquivos 
Você pode conectar o seu repositório 
com o de outros usuários e trocar 
arquivos sem perder o histórico principal
Sistema de Controle de 
Versão Distribuído
Sobre o Git 
• Inicialmente projetado e desenvolvido por 
Linus Torvalds e o time de desenvolvimento do 
Kernel do Linux 
• Totalmente distribuído 
• Ótimo suporte para desenvolvimento não linear 
• Ênfase em velocidade 
• Gratuito 
• Open Source
Snapshots e não 
diferenças 
CVS, 
SVN,… 
Git
Operações Locais 
Git possui propriedades 
abençoadas se comparado ao 
SVN e ao CVS. 
Todas as operações com o 
repositório são 
praticamente instantâneas, 
desde consulta de histórico 
até commit.
Integridade de Arquivos 
Antes de efetivar suas 
alterações é feita uma 
validação com checksum 
Mecanismo de 
checksum SHA-1 
Impossível alterar um arquivo sem que o Git saiba 
Mescla de alterações quase transparente ao usuário
…só adição de dados! 
Diferente do SVN e do CVS, o Git 
não guarda só as diferenças do seu 
arquivo mas sim uma imagem 
completa dele 
Você tem que ser praticamente um Jedi 
Sayajin para conseguir fazer algo que de 
errado e seja irreversível… 
…ou não ter a menor idéia do que esta fazendo!
Codificou e mandou pro repositório? 
Commit, push? Hell yeah! 
Pode tomar seu café em paz!
Com Git 
Com Git todo o trabalho é local, os commits são sempre feitos no 
seu repositório local e depois, através do método push envia 
todos os seus snapshots para um servidor que se responsabiliza 
de organiza-los. 
Com SVN, CVS 
Todo histórico de alterações são armazenadas no servidor 
tornando necessário estar conectado para disponibilizar suas 
alterações para o Sistema de Controle de Versão
Aí eu te pergunto…
E se a energia do prédio 
aonde você trabalha caisse 
e voltasse somente depois 
de 1 semana?!
Vamos para um exemplo rápido e 
prático
Você vai viajar pra Sydney e vai passar algumas 
horas sem fazer nada (aproximadamente 20 
horas)…
Então você tem decide que quer aproveitar bem 
todo esse tempo pra trabalhar em um projeto
Com SVN, CVS… 
Você então pega seu notebook e codifica ate sair 
fumaça do teclado, alterando vários arquivos e 
adicionando um monte de funcionalidades ao seu 
projeto…
Com SVN, CVS… 
Quando você finalmente chega no Hotel você 
conecta seu notebook na internet e faz um commit 
e manda tudo pro servidor.
Com SVN, CVS… 
…daí então o seu colega de trabalho liga e fala que 
você foi o responsável por “quebrar a build” do 
projeto que estava prestes a ser entregue pro 
cliente.
Com SVN, CVS… 
Então você se desespera pois você mexeu em vários arquivos e 
adicionou outros vários arquivos e também não consegue ir 
voltando nas versões pois, teoricamente, só existem 2 versões: 
antes do seu commit e depois do seu commit (e todas aquelas 
horas no vôo se resumem a um commit apenas)
Com SVN, CVS…
Com Git 
Você pega seu notebook e começa a codificar, com a 
mesma intensidade, porém com vários commits, branchs 
para teste, tags para versão, etc…
Com Git 
Quando você finalmente chega no Hotel você 
conecta seu notebook na internet e faz o push dos 
seus commits para o servidor da empresa…
Com Git 
…daí então o seu colega de trabalho liga e fala que 
você foi o responsável por “quebrar a build” do 
projeto que estava prestes a ser entregue pro 
cliente.
Com Git 
Como você usou Git você pode navegar entre as versões que 
foram criadas dos arquivos, ver quando foram adicionados no 
repositório e assim, pode achar o problema com mais facilidade.
Com Git
Explosão Git 
Mas por que somente agora tantas empresas, start-ups, 
profissionais e projetos open source estão 
adotando o Git com o Sistema de Controle de 
Versão de seus projetos?
O que é 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.
Ai alguém vira e pergunta.. 
Que empresa em sua sã consciência entregaria o 
código fonte dos seus programas para terceiros?
Bem…
Perguntas?!
Obrigado 
Adriano Luís Rocha 
Email: adrian.luis.rocha@gmail.com 
Linked In: http://www.linkedin.com/in/adrianoluis 
GitHub: http://github.com/adrianoluis

Más contenido relacionado

Destacado

Controle de Versão
Controle de VersãoControle de Versão
Controle de Versãodanferreira
 
Controle de versão - GIT
Controle de versão - GITControle de versão - GIT
Controle de versão - GITJefferson Lima
 
Controle de versão
Controle de versãoControle de versão
Controle de versãoZé Pereira
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systemsTim Staley
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoFelipe
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoocfelipe
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & GitCraig Smith
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?Leonid Mamchenkov
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVNPHPBelgium
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control SystemKMS Technology
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlJeremy Coates
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideRohit Arora
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to gitJoel Krebs
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 

Destacado (20)

Controle de Versão
Controle de VersãoControle de Versão
Controle de Versão
 
Controle de versão - GIT
Controle de versão - GITControle de versão - GIT
Controle de versão - GIT
 
Controle de versão
Controle de versãoControle de versão
Controle de versão
 
Git in 5 Minutes
Git in 5 MinutesGit in 5 Minutes
Git in 5 Minutes
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systems
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
What is version control software and why do you need it?
What is version control software and why do you need it?What is version control software and why do you need it?
What is version control software and why do you need it?
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Introduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guideIntroduction to Git/Github - A beginner's guide
Introduction to Git/Github - A beginner's guide
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Quick Introduction to git
Quick Introduction to gitQuick Introduction to git
Quick Introduction to git
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar a Controle de Versão Inteligente

Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GITDenis Santos
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Globalcode
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
 
Aula 4 gerência de configuração de software1
Aula 4   gerência de configuração de software1Aula 4   gerência de configuração de software1
Aula 4 gerência de configuração de software1Tiago Vizoto
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuárioFabrício Campos
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaHumberto Streb
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAmazon Web Services LATAM
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 

Similar a Controle de Versão Inteligente (20)

Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
Migração SVN para GIT
Migração SVN para GITMigração SVN para GIT
Migração SVN para GIT
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Aula 4 gerência de configuração de software1
Aula 4   gerência de configuração de software1Aula 4   gerência de configuração de software1
Aula 4 gerência de configuração de software1
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuário
 
Subrvesion - Controle de Versão
Subrvesion -  Controle de Versão Subrvesion -  Controle de Versão
Subrvesion - Controle de Versão
 
Alm open source
Alm open sourceAlm open source
Alm open source
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Controle de versões com o Subversion
Controle de versões com o SubversionControle de versões com o Subversion
Controle de versões com o Subversion
 
Cvs everton
Cvs   evertonCvs   everton
Cvs everton
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
Git e redmine
Git e redmineGit e redmine
Git e redmine
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 

Controle de Versão Inteligente

  • 1. Controle de Versão Inteligente por Adriano Rocha
  • 2. O que é Controle de Versão? • É a forma inteligente de manter uma copia segura dos arquivos de um projeto. • Permite que você altere um arquivo e, se fizer algo de errado, volte atras. • Guarda as informações de quem fez ou desfez uma funcionalidade.
  • 3. …ou seja… Se você fizer algo de errado… …saberemos que foi você!
  • 4. Controle de Versão Local • Primeiro utilizava-se de copiar arquivos em pastas.
  • 5. Controle de Versão Local • Depois foi criada uma estratégia de guardar as mudanças em banco de dados • RCS foi a ferramenta de controle de versão mais conhecida no mundo, no entanto ela trabalhava apenas com arquivos individuais e não com grupo de arquivos (projetos)
  • 6. Sistema de Controle de Versão Centralizado As versões dos arquivos são armazenadas em um servidor Os usuários copiam esses arquivos, alteram e mandam novamente para o servidor, bem como copiam as alterações de outros usuários
  • 7. Sistema de Controle de Versão Centralizado Desvantagens • Os arquivos estão centralizados no servidor. • É necessário estar conectado a rede do servidor para efetuar o “commit” das suas alterações • Se você estiver fora da rede os arquivos não estão mais sobre o controle de versão
  • 8. Sistema de Controle de Versão Distribuído Quando você conecta ao repositório você adquire uma copia completa, com todas as revisões dos arquivos Você pode conectar o seu repositório com o de outros usuários e trocar arquivos sem perder o histórico principal
  • 9. Sistema de Controle de Versão Distribuído
  • 10.
  • 11. Sobre o Git • Inicialmente projetado e desenvolvido por Linus Torvalds e o time de desenvolvimento do Kernel do Linux • Totalmente distribuído • Ótimo suporte para desenvolvimento não linear • Ênfase em velocidade • Gratuito • Open Source
  • 12. Snapshots e não diferenças CVS, SVN,… Git
  • 13. Operações Locais Git possui propriedades abençoadas se comparado ao SVN e ao CVS. Todas as operações com o repositório são praticamente instantâneas, desde consulta de histórico até commit.
  • 14. Integridade de Arquivos Antes de efetivar suas alterações é feita uma validação com checksum Mecanismo de checksum SHA-1 Impossível alterar um arquivo sem que o Git saiba Mescla de alterações quase transparente ao usuário
  • 15. …só adição de dados! Diferente do SVN e do CVS, o Git não guarda só as diferenças do seu arquivo mas sim uma imagem completa dele Você tem que ser praticamente um Jedi Sayajin para conseguir fazer algo que de errado e seja irreversível… …ou não ter a menor idéia do que esta fazendo!
  • 16. Codificou e mandou pro repositório? Commit, push? Hell yeah! Pode tomar seu café em paz!
  • 17. Com Git Com Git todo o trabalho é local, os commits são sempre feitos no seu repositório local e depois, através do método push envia todos os seus snapshots para um servidor que se responsabiliza de organiza-los. Com SVN, CVS Todo histórico de alterações são armazenadas no servidor tornando necessário estar conectado para disponibilizar suas alterações para o Sistema de Controle de Versão
  • 18. Aí eu te pergunto…
  • 19. E se a energia do prédio aonde você trabalha caisse e voltasse somente depois de 1 semana?!
  • 20. Vamos para um exemplo rápido e prático
  • 21. Você vai viajar pra Sydney e vai passar algumas horas sem fazer nada (aproximadamente 20 horas)…
  • 22. Então você tem decide que quer aproveitar bem todo esse tempo pra trabalhar em um projeto
  • 23. Com SVN, CVS… Você então pega seu notebook e codifica ate sair fumaça do teclado, alterando vários arquivos e adicionando um monte de funcionalidades ao seu projeto…
  • 24. Com SVN, CVS… Quando você finalmente chega no Hotel você conecta seu notebook na internet e faz um commit e manda tudo pro servidor.
  • 25. Com SVN, CVS… …daí então o seu colega de trabalho liga e fala que você foi o responsável por “quebrar a build” do projeto que estava prestes a ser entregue pro cliente.
  • 26. Com SVN, CVS… Então você se desespera pois você mexeu em vários arquivos e adicionou outros vários arquivos e também não consegue ir voltando nas versões pois, teoricamente, só existem 2 versões: antes do seu commit e depois do seu commit (e todas aquelas horas no vôo se resumem a um commit apenas)
  • 28. Com Git Você pega seu notebook e começa a codificar, com a mesma intensidade, porém com vários commits, branchs para teste, tags para versão, etc…
  • 29. Com Git Quando você finalmente chega no Hotel você conecta seu notebook na internet e faz o push dos seus commits para o servidor da empresa…
  • 30. Com Git …daí então o seu colega de trabalho liga e fala que você foi o responsável por “quebrar a build” do projeto que estava prestes a ser entregue pro cliente.
  • 31. Com Git Como você usou Git você pode navegar entre as versões que foram criadas dos arquivos, ver quando foram adicionados no repositório e assim, pode achar o problema com mais facilidade.
  • 33. Explosão Git Mas por que somente agora tantas empresas, start-ups, profissionais e projetos open source estão adotando o Git com o Sistema de Controle de Versão de seus projetos?
  • 34.
  • 35. O que é 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.
  • 36. Ai alguém vira e pergunta.. Que empresa em sua sã consciência entregaria o código fonte dos seus programas para terceiros?
  • 39. Obrigado Adriano Luís Rocha Email: adrian.luis.rocha@gmail.com Linked In: http://www.linkedin.com/in/adrianoluis GitHub: http://github.com/adrianoluis