Este documento resume uma apresentação sobre o sistema de controle de versão distribuído Git. A apresentação inclui uma introdução ao Git, comandos básicos, desenvolvimento em paralelo, compartilhamento de repositórios em equipe e workflows comuns. O apresentador também fornece vários recursos adicionais sobre o Git.
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 em ví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
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
13. 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!!
17. 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
18. 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
21. 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*/
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)
24. 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
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