Introducao git fisl

374 views
287 views

Published on

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

No Downloads
Views
Total views
374
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Introducao git fisl

  1. 1. Introdução ao Git (Por que não consigo mais usar SVN)
  2. 2. Oi! Hanneli (a.k.a. @hannelita)! Software developer! Middleware Consultant at ! Café e Pokémon <3
  3. 3. O que vamos ver hoje? Controle de versão - por que preciso disso?! O surgimento do Git! Primeiros passos com Git! Para onde ir depois do básico! Fotos e GIFS
  4. 4. Yet another talk about Git? Tenho dificuldade para aprender. Palestra com primeiros passos QUE FUNCIONAM, sem complicação.
  5. 5. Seu primeiro dia numa empresa
  6. 6. Seu primeiro dia numa empresa Code Code Code
  7. 7. Se o projeto já está andando, alguém precisa lhe fornecer o código
  8. 8. Como obter o código?
  9. 9. 1. Pendrive?
  10. 10. Pendrive? Rápido #COMOFAZ
  11. 11. SMP
  12. 12. Sincronização Manual de Pendrives não parece legal.
  13. 13. 2. Compartilhar pela rede Projeto
  14. 14. Compartilhar pela rede
  15. 15. Compartilhar pela rede Todos com acesso ao código
  16. 16. Compartilhar pela rede Todos com acesso ao código LOL.java WTFWTF.java LOL.java #COMOFAZ
  17. 17. Nenhum dos casos parece ser um bom cenário para distribuir e organizar o código numa equipe.
  18. 18. Evolução nos repositórios de código
  19. 19. Versão 3! Versão 2! Versão 1 SVN
  20. 20. SVN Ajuda com o Merge Código Centralizado Versionar de forma fácil e intuitiva
  21. 21. Problem Solved!
  22. 22. Problemas • Conflitos
  23. 23. Problemas • Como interromper a criação de uma tarefa e começar outra?
  24. 24. Problemas • Quero começar uma feature a partir de um código que você ainda não comittou
  25. 25. Problemas • A PASTA .svn CORROMPEU!
  26. 26. Algo mais eficiente
  27. 27. De volta a 2005
  28. 28. Manter o Kernel!
  29. 29. Manter o Kernel! Versão 3! Versão 2! Versão 1 Controle de versão distribuído
  30. 30. Git
  31. 31. Quais suas primeiras impressões sobre Git? • SVN é mais fácil! • Git é muito complexo • Não sei mexer nisso!
  32. 32. Por que Git parece tão traumático?
  33. 33. Por que Git parece tão traumático? • Command Line • Comandos são diferentes do SVN • Novos conceitos
  34. 34. Supere seus medos
  35. 35. Git - primeiros passos 1. Obter cópia local do projeto 2. Receber alterações 3. Merge das alterações locais com remotas 4. Compartilhar alterações git clone <URL do repo> git pull git add <FILE>! git commit -m “Commit"! git push git remote add remote_repo <URL repo>
  36. 36. Acredite, isso já resolve muitos casos de uso.
  37. 37. Git - e os conflitos?
  38. 38. A Receita de Bolo para minimizar conflitos • Faça suas alterações • git checkout -b work • git add <alterações> • git commit -m "Alterações" • git checkout master • git pull • git checkout work • git rebase master • git checkout master • git merge work • git push
  39. 39. A Receita de Bolo para minimizar conflitos
  40. 40. Explicando a receita (programe, duh) 1. Faça suas alterações
  41. 41. 2. git checkout -b work Explicando a receita
  42. 42. O Git permite que você trabalhe em diferentes 'workspaces' Explicando a receita Projeto (cópia local) git checkout -b "Cópia" da cópia local Posso alternar entre as "cópias" Uma “cópia" não é uma cópia em disco Uma “cópia" é um snapshot Branch
  43. 43. Branches Explicando a receita Projeto (cópia local) Branch master git checkout -b work Snapshot Branch work Baseado na branch master git checkout -b lolol Snapshot Branch lolol Baseado na branch work Cria nova branch
  44. 44. Explicando a receita 3. git add <alterações> “Git, essas alterações são importantes! Quero que meu Snapshot as veja!" 4. git commit -m "Mensagem" Meu snapshot local possui as alterações que quero enviar para o repositório remoto
  45. 45. Explicando a receita 5. git checkout master branch work git checkout branch master git checkout <nome Branch> Alterna entre branches existentes
  46. 46. Explicando a receita 6. git pull branch master Pega as alterações do repositório remoto e faz merge
  47. 47. Explicando a receita Onde fizemos as alterações? Master ou work? Se você não alterar o master, pode ter sempre uma cópia local do repositório atualizado sem ter conflitos!
  48. 48. Explicando a receita 7. git checkout work branch master git checkout branch work
  49. 49. Explicando a receita 8. git rebase master
  50. 50. Explicando a receita Existem 2 formas para fazer merge no Git git merge git rebase rebase possui vários usosOcorre ao fazer um git pull "rebase faz um merge mais inteligente"
  51. 51. Explicando a receita Por que tive que trocar de branch para fazer rebase? "rebase faz um merge mais inteligente" Axioma Só é seguro fazer rebase em branches locais Se não criássemos outra branch, faríamos: branch master rebase
  52. 52. Explicando a receita
  53. 53. Explicando a receita A chance de não ocorrer conflitos com rebase é maior do que com git merge "rebase faz um merge mais inteligente" Só é seguro fazer rebase em branches locais
  54. 54. Explicando a receita Deixe os conflitos ocorrerem em sua snapshot de trabalho. branch work
  55. 55. Explicando a receita 9. git checkout master branch work git checkout branch master
  56. 56. Explicando a receita 10. git merge work Se o rebase foi bem sucedido, o merge não terá problema branch master git rebase branch work Conflitos! ocorrem! aqui git merge
  57. 57. Explicando a receita 11. git push Envia as alterações para o repositório remoto branch master
  58. 58. Complementando a receita 11. git branch -d work Remove a branch work. Nesse momento ela não é mais útil. Uma nova task, uma nova branch
  59. 59. Onde posso conseguir um servidor Git? Faça um ;D Github Bitbucket
  60. 60. E aquela história de ‘controle de versão distribuído’? git remote add server <URL> server git remote add Outro_server <URL2> Outro_server
  61. 61. Próximos passos de estudo Branches remotas git stash git reset git revert git bisect git blame Hooks git config Ferramentas gráficas
  62. 62. Depois de um tempo com Git… NÃO CONSIGO VOLTARA PARA O SVN!
  63. 63. Obrigada! Perguntas? @hannelita hannelita@gmail.com
  64. 64. Bibliografia http://git-scm.com/book http://gitref.org/

×