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

  • 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