controlo de versões distribuído com git
DESCRIPTION
O Git é um sistema de controlo de versões distribuído altamente performante, extensível e potente, que está a ser adoptado cada vez mais por developers de diferentes plataformas incluindo .NET. Nesta apresentação o Caio irá mostrar os primeiros passos com o Git, como trabalhar em equipa sem pisar os pés uns dos outros e permitindo uma gestão mais fácil dos artefactos de um projecto, incluindo código, documentação e binários. Irá partilhar as suas experiências de uso do Git no dia-a-dia em equipa, as reacções e as melhorias que Git trouxe, e quais as convenções e fluxos de trabalho que utiliza.TRANSCRIPT
http://netponto.org
Controlo de Versão Distribuído com GitCaio Proiete
17ª Reunião Presencial - 22/01/2011
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 != GitHub
http://git-scm.com
http://github.com
Site oficial, documentação, download, etc...
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
demonstração
Comandos básicos do Git (cont.)
Ficheiro .gitignore#Ignore thumbnails created by WindowsThumbs.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
demonstração
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
demonstração
Workflows mais comuns
Subversion-Style
Descentralized but centralized
Integration Manager
Dictator and Lieutenants
Questões?
ReferênciasGit 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ênciasGit 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 [email protected]://caioproiete.nethttp://twitter.com/caioproiete