Your SlideShare is downloading. ×
Controle de versões distribuído para projetos de software
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Controle de versões distribuído para projetos de software

1,915
views

Published on

Apresentação utilizada na parte 1 do treinamento "GIT: Controle de versões distribuído para projetos de software"

Apresentação utilizada na parte 1 do treinamento "GIT: Controle de versões distribuído para projetos de software"

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,915
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
44
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. GIT: Controle de VersõesDistribuído para Projetos de Software Parte 1Gilmar Pupo @gpupo
  • 2. Sobre @gpupo• Desenvolvedor e consultor em GTI• Dependente de documentação, bookmarks e anotações• Doctrine ORM, Symfony framework, Perl, Bash, Linux, jQuery mobile• Membro e co-fundador do #maisagil• Empreendedor no @hotellinux www.gilmar.eti.br www.gpupo.com = livro GIT SCM para Projetos de Software. @gpupo
  • 3. Objetivos• Entender o conceito distribuído• Entender os comandos básicos• Entender branching model GIT SCM para Projetos de Software. @gpupo
  • 4. Documentação• Anote• Tweet #maisagil• www.delicious.com/gpupo/git GIT SCM para Projetos de Software. @gpupo
  • 5. Conceitos• Transformar ou modernizar?• Estruturas convencionais atendem as necessidades atuais?• Tecnologia versus Conhecimento• A guerra em fileiras ou em células?• Evolução organizacional GIT SCM para Projetos de Software. @gpupo
  • 6. Version control system VCS• um software para gerenciar diferentes versões de um documento qualquer• o processo de guardar o histórico de alterações de diferentes arquivos Semelhante a slots em seu video game GIT SCM para Projetos de Software. @gpupo
  • 7. Version control system VCS• Backup (?!)• Histórico• Trabalho em equipe• Marcação e resgate de versões estáveis• Ramificações Construção facial GIT SCM para Projetos de Software. @gpupo
  • 8. Modelo centralizado• Repositório fica armazanedo em servidor central• Desenvolvedores ao fazerem checkout, obtêm uma cópia da última revisão do repositório• Somente usuários autorizados podem fazer commits (brecha de tempo!) GIT SCM para Projetos de Software. @gpupo
  • 9. Modelo centralizado GIT SCM para Projetos de Software. @gpupo
  • 10. Modelo centralizado GIT SCM para Projetos de Software. @gpupo
  • 11. Modelo distribuído• Cada projeto é um repositório completo, com histórico total• Independe de acesso à rede ou um servidor central, Commits podem ser feitos offline a qualquer momento• Commits podem ser transferidos de um repositório para outro facilmente GIT SCM para Projetos de Software. @gpupo
  • 12. Modelo distribuído GIT SCM para Projetos de Software. @gpupo
  • 13. Modelo distribuído GIT SCM para Projetos de Software. @gpupo
  • 14. Modelo distribuído GIT SCM para Projetos de Software. @gpupo
  • 15. Modelo distribuído• Modelo organizacional• Recursos da rede• Diffs velozes e furiosos• Clone do repositório localhttp://t.co/7W3uxWo GIT SCM para Projetos de Software. @gpupo
  • 16. Modelo distribuído Distributed DistributedVersion ControlVersion Control Systems Systems = DVCS GIT SCM para Projetos de Software. @gpupo
  • 17. DVCSs• BitKeeper• git• Mercurial• Bazaar• darcs• Monotone GIT SCM para Projetos de Software. @gpupo
  • 18. GIT• Open Source (GPL v2)• Originalmente escrito por Linus Torvalds em 2005• Mantido por Junio Hamano• Desenvolvido para manter o Kernel do Linux• Sistema de controle de versões distribuído• Foco em rapidez, eficiência e uso em grandes projetos GIT SCM para Projetos de Software. @gpupo
  • 19. GIT “How many have done a branch and merged it? How many ofyou enjoyed it?”“When you do a merge, you plan ahead for a week, then set asidea day to do it.”“Some people have 5, 10, 15 branches”. One branch isexperimental. One branch is maintenance, etc.“CVS — you don’t commit. You make changes withoutcommitting. You never commit until it passes a giant test suite.People make 1-liner changes, knowing it can’t possibly break.” Linus Torvalds GIT SCM para Projetos de Software. @gpupo
  • 20. Histórico now! GIT GIT SCM para Projetos de Software. @gpupo
  • 21. Why!?
  • 22. Why!?branches baratos(“ramificações”, "bifurcações", ou "galhos") GIT SCM para Projetos de Software. @gpupo
  • 23. Branches baratos Criar um branch para testar uma idéia, fazer commit algumas vezes, voltar para a partir• de onde você fez o branch, aplicar um patch (conjunto de modificações), voltar para onde está experimentando, então fazer merge. Ter um branch que sempre contém somente o que vai para produção, outro onde você• faz merge do trabalho para testar e várias outras menores para atividades do dia a dia. Criar novas branches para cada nova funcionalidade que estiver trabalhando, para que• você possa mudar de uma para outra com facilidade, então deletar cada branch quando essa fizer merge dessa funcionalidade na linha principal. Criar um branch para experimentar, descobrir que não vai funcionar e somente deletá-la,• abandonando o trabalho - sem que ninguém veja isso (mesmo se você tiver trabalhado outras branches no meio do caminho). GIT SCM para Projetos de Software. @gpupo
  • 24. Why!? Tudo é local• Existe muito pouco fora de fetch, pull, push que comunica de alguma maneira com qualquer coisa além do seu disco rígido. GIT SCM para Projetos de Software. @gpupo
  • 25. Why!?• Veloz• Social• Pequeno GIT SCM para Projetos de Software. @gpupo
  • 26. Why!?área intermediária● GIT SCM para Projetos de Software. @gpupo
  • 27. Area intermediária (staging ou index)• você pode configurar como você quer que seu commit fique antes de fazê-lo.• você pode facilmente ir colocando seus arquivos nela à medida que for terminando e então fazer commit deles sem fazer commit de todos os arquivos modificados, ou ter que listá-los na linha de comando durante o commit. GIT SCM para Projetos de Software. @gpupo
  • 28. Qualquer workflow• Você pode facilmente implementar praticamente qualquer fluxo de trabalho que puder pensar com facilidade Até mesmo svn style! GIT SCM para Projetos de Software. @gpupo
  • 29. Aderência●6 meses de monitoramento●Desafogar a fila●Acompanhamento GIT SCM para Projetos de Software. @gpupo
  • 30. ?o.O
  • 31. Projetos utilizando GIT Amarok Linux kernel Qt Android Linux Mint Rsync CakePHP Maemo Ruby on Rails cURL MeeGo Samba Debian Mono Starlink Digg MooTools Sugar Eclipse One Laptop Per Xfce Fedora Child (OLPC) Yahoo! UI Library GIMP Perl Zend Framework GNOME phpBB Symfony GTK+ Prototype.js Framework jQuery http://en.wikipedia.org/wiki/Git_(software) GIT SCM para Projetos de Software. @gpupo
  • 32. Resourcesgit.or.czgitcasts.comdel.icio.us/popular/git#git / #github GIT SCM para Projetos de Software. @gpupo
  • 33. Perguntas? GIT SCM para Projetos de Software. @gpupo
  • 34. Parte 2 :Mão na massa.... Vai! GIT SCM para Projetos de Software. @gpupo

×