SlideShare une entreprise Scribd logo
1  sur  25
Por Jonata Weber
jonataa@gmail.com
+
Grupo
Práticas de Software
Agenda
 Controle de Versão
 O que é?
 Benefícios
 Por que utilizar?
 Modelos
 Git
 Noções básicas
 Três Estados
 Prática
 Github
Controle de Versão (VCS)
 O que é?
 O controle de versão é um sistema que registra as
mudanças feitas em um arquivo ou um conjunto de
arquivos ao longo do tempo de forma que você possa
recuperar versões específicas
 Benefícios
 Histórico
 Quem, quando e onde?
 Colaboração
 Trabalho paralelo
 Variações no Projeto
Avaliação Rápida
 Alguém já sobrescreveu o código de outra pessoa
por acidente e acabou perdendo as alterações?
 Tem dificuldades em saber quais as alterações
efetuadas em um software, quando foram feitas e
quem fez?
 Tem dificuldade em recuperar o código de uma
versão anterior que está em produção?
 Tem problemas em manter variações do sistema ao
mesmo tempo?
Avaliação Rápida
 Se alguma das perguntas anteriores teve um SIM
como resposta, então sua equipe necessita
urgentemente de um sistema para controle de
versão!
Controle de versão é fundamental para o
desenvolvimento de software
Como funciona um VCS?
Ferramentas
 As melhores são Open Source
 Centralizado
 Subversion, por exemplo.
 Distribuído
 Exemplo: Mercurial e o Git
VCS Centralizado
VCS Distribuído
VCS Distribuído
 Pull (Puxar)
 Atualiza o repositório local
 Push (Empurrar)
 Atualiza o repositório remoto
VCS Distribuído
Noções Básicas de Git
Snapshots, E Não Diferenças
VCS Convencionais
Snapshots, E Não Diferenças
Git
Noções Básicas de Git
 Quase todas as operações são locais
 Menor latência
 Histórico do projeto no seu disco local
 Trabalho offline
 Git tem integridade
 Checksum (hash SHA-1)
24b9da6552252987aa493b52f8696cd6d3b00373
 Fazer um commit de um snapshot no Git, é muito
difícil que você o perca
Noções Básicas de Git
 Os Três Estados
 Modificado (modified)
 Preparado (staged)
 Consolidado (committed)
Os Três Estados
Os Três Estados
 O workflow básico do Git pode ser descrito assim:
1. Você modifica arquivos no seu diretório de trabalho.
2. Você seleciona os arquivos, adicionando snapshots
deles para sua área de preparação.
3. Você faz um commit, que leva os arquivos como eles
estão na sua área de preparação e os armazena
permanentemente no seu diretório Git.
Instalando Git
 Baixar snapshot mais recente:
 http://git-scm.com/download
 Instalando no Linux
$ yum install git-core
$ apt-get install git-core
 Instalando no Mac
 http://code.google.com/p/git-osx-installer
Instalando Git
 http://msysgit.github.com
 Cliente SSH e GUI padrão
 Sua Identidade
$ git config --global user.name “Jonata Weber"
$ git config --global user.email jonataa@gmail.com
Git na Prática
 Criar um novo repositório
git init
 Obter um repositório
git clone /caminho/para/o/repositório
git clone usuário@servidor:/caminho/para/o/repositório
 Adicionar e confirmar (staging)
git add <arquivo>
git add *
 Commit
git commit -m "comentários das alterações“
 Enviar alterações
git push origin master
 Adicionar um servidor remoto
git remote add origin <servidor>
 Log de commits
git log
Exemplo Prático
1. Criar e movimentar um repositório local
2. Empurrar (Push) para um repositório remoto
3. Puxar (Pull) de um repositório remoto
4. Deploy automático
Github
 GitHub é um Serviço de Web Hosting Compartilhado
para projetos que usam o controle de versionamento
Git.
 https://github.com/
 É escrito em Ruby on Rails.
 Planos comerciais e gratuitos para projetos de
código aberto.
 Possui algumas funcionalidades
 Rede social como feeds, followers, wiki e um gráfico que
mostra como os desenvolvedores trabalham as versões
de seus repositórios.
Referências
 http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/conceitos_basicos_controle_vers
ao_centralizado_e_distribuido.php?pagNum=3
 http://git-scm.com/book/pt-br/Primeiros-passos-Sobre-Controle-de-Vers%C3%A3o
 http://rogerdudler.github.io/git-guide/index.pt_BR.html
 http://www.akitaonrails.com/2010/02/13/deploy-com-git-push
 https://devcenter.heroku.com/articles/git
 http://blog.thiagobelem.net/automatizando-a-instalacao-deploy-e-atualizacao-de-sites-com-git/
 http://www.contagia.com.br/blog/git-pra-que-serve/
 http://marklodato.github.io/visual-git-guide/index-en.html
 http://www.abstraindo.com/ambiente-de-desenvolvimento/vagrant-de-forma-simples-parte-1/
Obrigado!!

Contenu connexe

Tendances

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
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!Vitor Silva
 
Lançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuoLançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuoHélio Medeiros
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentSaulo Martins
 
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTWDesvendando Git e Github - WoMakersCode Bootcamp @ SPTW
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTWMorganna Giovanelli de Souza
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDevHélio Medeiros
 
Git that like a boss - Colaborando com GITHUB
Git that like a boss - Colaborando com GITHUBGit that like a boss - Colaborando com GITHUB
Git that like a boss - Colaborando com GITHUBHélio Medeiros
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineClaudio Romao
 
Controle de versão com git
Controle de versão com gitControle de versão com git
Controle de versão com gitIgorDiniz22
 
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.Hélio Medeiros
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para IniciantesIgorDiniz22
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsStefan Teixeira
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errarBruno Calheira
 

Tendances (20)

Gitlab CI/CD com python
Gitlab CI/CD com pythonGitlab CI/CD com python
Gitlab CI/CD com python
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
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
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
 
Git - Conceitos
Git - ConceitosGit - Conceitos
Git - Conceitos
 
Lançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuoLançando versões em um clique - deploy contínuo
Lançando versões em um clique - deploy contínuo
 
Git/GitHub
Git/GitHubGit/GitHub
Git/GitHub
 
Git & Delphi
Git & DelphiGit & Delphi
Git & Delphi
 
Git do Zero - Campus Party #12
Git do Zero - Campus Party #12Git do Zero - Campus Party #12
Git do Zero - Campus Party #12
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTWDesvendando Git e Github - WoMakersCode Bootcamp @ SPTW
Desvendando Git e Github - WoMakersCode Bootcamp @ SPTW
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
Git that like a boss - Colaborando com GITHUB
Git that like a boss - Colaborando com GITHUBGit that like a boss - Colaborando com GITHUB
Git that like a boss - Colaborando com GITHUB
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
Incluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no PipelineIncluindo Ferramentas de Segurança no Pipeline
Incluindo Ferramentas de Segurança no Pipeline
 
Controle de versão com git
Controle de versão com gitControle de versão com git
Controle de versão 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.
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para Iniciantes
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 

Similaire à Controle de versão, Git e GitHub para desenvolvedores

Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoocfelipe
 
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitC. Augusto Proiete
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubGilson Junior
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...Jadson Santos
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVNLuciano Lima
 
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
 
Learn about Git - Git Tutorial
Learn about Git - Git TutorialLearn about Git - Git Tutorial
Learn about Git - Git TutorialLucas Brigida
 
CVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoCVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoMarden Neubert
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 

Similaire à Controle de versão, Git e GitHub para desenvolvedores (20)

Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...Mini curso gerenciamento de configuração e mudança com GIT + Eclipse  -  I...
Mini curso gerenciamento de configuração e mudança com GIT + Eclipse - I...
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
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
 
Learn about Git - Git Tutorial
Learn about Git - Git TutorialLearn about Git - Git Tutorial
Learn about Git - Git Tutorial
 
CVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - IntroduçãoCVS - Slides Parte 1 - Introdução
CVS - Slides Parte 1 - Introdução
 
Primeiros passos - GIT
Primeiros passos - GITPrimeiros passos - GIT
Primeiros passos - GIT
 
Apres git geinfo2012
Apres git geinfo2012Apres git geinfo2012
Apres git geinfo2012
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 

Controle de versão, Git e GitHub para desenvolvedores

  • 2. Agenda  Controle de Versão  O que é?  Benefícios  Por que utilizar?  Modelos  Git  Noções básicas  Três Estados  Prática  Github
  • 3. Controle de Versão (VCS)  O que é?  O controle de versão é um sistema que registra as mudanças feitas em um arquivo ou um conjunto de arquivos ao longo do tempo de forma que você possa recuperar versões específicas  Benefícios  Histórico  Quem, quando e onde?  Colaboração  Trabalho paralelo  Variações no Projeto
  • 4. Avaliação Rápida  Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações?  Tem dificuldades em saber quais as alterações efetuadas em um software, quando foram feitas e quem fez?  Tem dificuldade em recuperar o código de uma versão anterior que está em produção?  Tem problemas em manter variações do sistema ao mesmo tempo?
  • 5. Avaliação Rápida  Se alguma das perguntas anteriores teve um SIM como resposta, então sua equipe necessita urgentemente de um sistema para controle de versão! Controle de versão é fundamental para o desenvolvimento de software
  • 7. Ferramentas  As melhores são Open Source  Centralizado  Subversion, por exemplo.  Distribuído  Exemplo: Mercurial e o Git
  • 10. VCS Distribuído  Pull (Puxar)  Atualiza o repositório local  Push (Empurrar)  Atualiza o repositório remoto
  • 13. Snapshots, E Não Diferenças VCS Convencionais
  • 14. Snapshots, E Não Diferenças Git
  • 15. Noções Básicas de Git  Quase todas as operações são locais  Menor latência  Histórico do projeto no seu disco local  Trabalho offline  Git tem integridade  Checksum (hash SHA-1) 24b9da6552252987aa493b52f8696cd6d3b00373  Fazer um commit de um snapshot no Git, é muito difícil que você o perca
  • 16. Noções Básicas de Git  Os Três Estados  Modificado (modified)  Preparado (staged)  Consolidado (committed)
  • 18. Os Três Estados  O workflow básico do Git pode ser descrito assim: 1. Você modifica arquivos no seu diretório de trabalho. 2. Você seleciona os arquivos, adicionando snapshots deles para sua área de preparação. 3. Você faz um commit, que leva os arquivos como eles estão na sua área de preparação e os armazena permanentemente no seu diretório Git.
  • 19. Instalando Git  Baixar snapshot mais recente:  http://git-scm.com/download  Instalando no Linux $ yum install git-core $ apt-get install git-core  Instalando no Mac  http://code.google.com/p/git-osx-installer
  • 20. Instalando Git  http://msysgit.github.com  Cliente SSH e GUI padrão  Sua Identidade $ git config --global user.name “Jonata Weber" $ git config --global user.email jonataa@gmail.com
  • 21. Git na Prática  Criar um novo repositório git init  Obter um repositório git clone /caminho/para/o/repositório git clone usuário@servidor:/caminho/para/o/repositório  Adicionar e confirmar (staging) git add <arquivo> git add *  Commit git commit -m "comentários das alterações“  Enviar alterações git push origin master  Adicionar um servidor remoto git remote add origin <servidor>  Log de commits git log
  • 22. Exemplo Prático 1. Criar e movimentar um repositório local 2. Empurrar (Push) para um repositório remoto 3. Puxar (Pull) de um repositório remoto 4. Deploy automático
  • 23. Github  GitHub é um Serviço de Web Hosting Compartilhado para projetos que usam o controle de versionamento Git.  https://github.com/  É escrito em Ruby on Rails.  Planos comerciais e gratuitos para projetos de código aberto.  Possui algumas funcionalidades  Rede social como feeds, followers, wiki e um gráfico que mostra como os desenvolvedores trabalham as versões de seus repositórios.
  • 24. Referências  http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/conceitos_basicos_controle_vers ao_centralizado_e_distribuido.php?pagNum=3  http://git-scm.com/book/pt-br/Primeiros-passos-Sobre-Controle-de-Vers%C3%A3o  http://rogerdudler.github.io/git-guide/index.pt_BR.html  http://www.akitaonrails.com/2010/02/13/deploy-com-git-push  https://devcenter.heroku.com/articles/git  http://blog.thiagobelem.net/automatizando-a-instalacao-deploy-e-atualizacao-de-sites-com-git/  http://www.contagia.com.br/blog/git-pra-que-serve/  http://marklodato.github.io/visual-git-guide/index-en.html  http://www.abstraindo.com/ambiente-de-desenvolvimento/vagrant-de-forma-simples-parte-1/