17ª Reunião Presencial - 22/01/2011   http://netponto.org




  Controlo de Versão Distribuído com Git
                                            Caio Proiete
Patrocinadores desta reunião
Caio Proiete
Consultor Independente / Freelancer
  –> http://caioproiete.net

Formador @ CICLO
  –> http://ciclo.pt

Microsoft MVP, MCT, MC*.net
Agenda
•   Introdução
•   Como usar / comandos básicos
•   Desenvolvimento em paralelo
•   Partilha de repositórios em equipa
•   Workflows mais comuns
Também disponível em vídeo...


      Assista!
http://www.youtube.com/watch?v
=aAIryX2gVTY
Git: O que é isto?
• Sistema de Controlo de Versões
  – Desenvolvimento distribuído
  – Óptimo para desenvolvimento não-linear
  – Funciona fora do Visual Studio (!)
  – Rápido. Muito rápido!
  – Gratuito e Open Source
  –
  – Funciona fora do Visual Studio (!)
Git: O que é isto? (cont.)
• Começou a ser desenvolvido em Abril de
  2005 pelo Linus Torvalds. É utilizado
  para manter o kernel do Linux há 5 anos

• Actualmente mantido pelo Junio
  Hamano com outros 280+ developers
Git: I can haz download?




       http://git-scm.com
Git != GitHub

                     http://git-scm.com
Site oficial, documentação, download, etc...


                     http://github.com
Serviço que permite alojar repositórios via Internet
Desenvolvimento Distríbuido...
Desenvolvimento Centralizado
Desenvolvimento Distribuído
Vantagem?
• Pode fazer TUDO sem precisar do
  servidor!
  – Consultar toda a história do projecto desde o
    primeiro commit;
  – Obter versões mais antigas do projecto;
  – E o mais importante: Efectuar commits!!
Escrever a história de forma linear
Git for Windows: msysgit
Git for Windows: msysgit
Comandos básicos do Git
• git init
  – Criar um novo repositório do git
• git status
  – Mostrar o que mudou desde o último commit
• git add
  – Escolher o que fará parte do próximo commit
• git commit
  – Gravar um novo commit
Comandos básicos do Git (cont.)
• git log / gitk [2]
   – Consultar os commits (história)
• git reset
   – Mover o apontador “HEAD”
• git config
   – Configurar opções globais ou do repositório

   [2] Não é exactamente um comando, mas uma aplicação
Comandos básicos do Git
Comandos básicos do Git (cont.)
Ficheiro .gitignore
#Ignore thumbnails created by Windows
Thumbs.db

#Ignore files created by Visual Studio
*.suo
*.user
[Oo]bj
[Bb]in
[Dd]ebug*/
[Rr]elease*/
_ReSharper*/
Desenvolvimento em paralelo
• git branch
  – Listar/Criar/Apagar branches
• git checkout
  – Saltar entre branches (e não só)
• git merge
  – Efectuar merge de branches
• git mergetool
  – Ferramenta de merge (resolver conflitos)
Desenvolvimento em paralelo
Partilha de repositórios em equipa
• git clone
  – Obter uma cópia de um repositório remoto
• git pull
  – Receber actualizações de um repositório
• git push
  – Enviar actualizações para um repositório
Partilha de repositórios em equipa
Workflows mais comuns
Subversion-Style
Descentralized but centralized
Integration Manager
Dictator and Lieutenants
Questões?
Referências
Git Scm - Site oficial do Git
    – http://git-scm.com
Posts sobre Git em meu blog
    – http://caioproiete.net/pt/tag/git/
Pro Git (e-book)
    – http://progit.org
Git Ready (tutorial / tips)
    – http://www.gitready.com
Git Magic (e-book)
    – http://www-cs-students.stanford.edu/~blynn/gitmagic
Referências
Git for Beginners
   – http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-
     practical-guide
Why Git is Better than X
   – http://whygitisbetterthanx.com
Git Is Your Friend not a Foe
   – http://hades.name/blog/2010/01/17/git-your-friend-not-foe
A successful Git branching model
   – http://nvie.com/posts/a-successful-git-branching-model
Use Git For What It Is Not Intended (UGFWIINI)
   – http://thread.gmane.org/gmane.comp.version-control.git/110411
Patrocinadores desta reunião
Obrigado!

       Caio Proiete
       caio@netponto.org
       http://caioproiete.net
       http://twitter.com/caioproiete

Controlo de Versões Distribuído com Git - C. Augusto Proiete

  • 1.
    17ª Reunião Presencial- 22/01/2011 http://netponto.org Controlo de Versão Distribuído com Git Caio Proiete
  • 2.
  • 3.
    Caio Proiete Consultor Independente/ Freelancer –> http://caioproiete.net Formador @ CICLO –> http://ciclo.pt Microsoft MVP, MCT, MC*.net
  • 4.
    Agenda • Introdução • Como usar / comandos básicos • Desenvolvimento em paralelo • Partilha de repositórios em equipa • Workflows mais comuns
  • 5.
    Também disponível emvídeo... Assista! http://www.youtube.com/watch?v =aAIryX2gVTY
  • 6.
    Git: O queé isto? • Sistema de Controlo de Versões – Desenvolvimento distribuído – Óptimo para desenvolvimento não-linear – Funciona fora do Visual Studio (!) – Rápido. Muito rápido! – Gratuito e Open Source – – Funciona fora do Visual Studio (!)
  • 7.
    Git: O queé isto? (cont.) • Começou a ser desenvolvido em Abril de 2005 pelo Linus Torvalds. É utilizado para manter o kernel do Linux há 5 anos • Actualmente mantido pelo Junio Hamano com outros 280+ developers
  • 8.
    Git: I canhaz download? http://git-scm.com
  • 9.
    Git != GitHub http://git-scm.com Site oficial, documentação, download, etc... http://github.com Serviço que permite alojar repositórios via Internet
  • 10.
  • 11.
  • 12.
  • 13.
    Vantagem? • Pode fazerTUDO sem precisar do servidor! – Consultar toda a história do projecto desde o primeiro commit; – Obter versões mais antigas do projecto; – E o mais importante: Efectuar commits!!
  • 14.
    Escrever a históriade forma linear
  • 15.
  • 16.
  • 17.
    Comandos básicos doGit • git init – Criar um novo repositório do git • git status – Mostrar o que mudou desde o último commit • git add – Escolher o que fará parte do próximo commit • git commit – Gravar um novo commit
  • 18.
    Comandos básicos doGit (cont.) • git log / gitk [2] – Consultar os commits (história) • git reset – Mover o apontador “HEAD” • git config – Configurar opções globais ou do repositório [2] Não é exactamente um comando, mas uma aplicação
  • 19.
  • 20.
  • 21.
    Ficheiro .gitignore #Ignore thumbnailscreated by Windows Thumbs.db #Ignore files created by Visual Studio *.suo *.user [Oo]bj [Bb]in [Dd]ebug*/ [Rr]elease*/ _ReSharper*/
  • 22.
    Desenvolvimento em paralelo •git branch – Listar/Criar/Apagar branches • git checkout – Saltar entre branches (e não só) • git merge – Efectuar merge de branches • git mergetool – Ferramenta de merge (resolver conflitos)
  • 23.
  • 24.
    Partilha de repositóriosem equipa • git clone – Obter uma cópia de um repositório remoto • git pull – Receber actualizações de um repositório • git push – Enviar actualizações para um repositório
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Referências Git Scm -Site oficial do Git – http://git-scm.com Posts sobre Git em meu blog – http://caioproiete.net/pt/tag/git/ Pro Git (e-book) – http://progit.org Git Ready (tutorial / tips) – http://www.gitready.com Git Magic (e-book) – http://www-cs-students.stanford.edu/~blynn/gitmagic
  • 33.
    Referências Git for Beginners – http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive- practical-guide Why Git is Better than X – http://whygitisbetterthanx.com Git Is Your Friend not a Foe – http://hades.name/blog/2010/01/17/git-your-friend-not-foe A successful Git branching model – http://nvie.com/posts/a-successful-git-branching-model Use Git For What It Is Not Intended (UGFWIINI) – http://thread.gmane.org/gmane.comp.version-control.git/110411
  • 34.
  • 35.
    Obrigado! Caio Proiete caio@netponto.org http://caioproiete.net http://twitter.com/caioproiete