Superando o GitFlow - DrupalCamp Campinas 2016

291 visualizações

Publicada em

Apresentação realizada por Luiz Guerra (aka Becker) na DrupalCamp Campinas 2016 falando sobre workflow de git focado na entrega de valor em outsourcing com equipes distribuídas.

Publicada em: Software
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Superando o GitFlow - DrupalCamp Campinas 2016

  1. 1. Superando o GitFlow Workflow de git focado na entrega de valor em outsourcing com equipes distribuídas. Luiz Guerra luiz.guerra@taller.net.br Renato Reva Gomes renato@taller.net.br
  2. 2. Gitflow master release development feature 1 feature 2 feature 3 1.0
  3. 3. Gitflow master release development 1.0 hotfix 1.1
  4. 4. Contexto de Trabalho /Necessidades
  5. 5. Equipe distribuída
  6. 6. Equipe distribuída Fluxo contínuo/kanban
  7. 7. Equipe distribuída Fluxo contínuo/kanban CI&CD
  8. 8. Equipe distribuída Fluxo contínuo/kanban CI&CD Independência entre features
  9. 9. Equipe distribuída Fluxo contínuo/kanban CI&CD Independência entre features Feedback constante
  10. 10. Problemas Enfrentados
  11. 11. Conflitos inesperados
  12. 12. Conflitos inesperados Imprevisibilidade na integração
  13. 13. Conflitos inesperados Imprevisibilidade na integração Dificuldade em entregar demandas isoladas
  14. 14. Conflitos inesperados Imprevisibilidade na integração Dificuldade em entregar demandas isoladas Complexidade da árvore
  15. 15. tig
  16. 16. Conflitos inesperados Imprevisibilidade na integração Dificuldade em entregar demandas isoladas Complexidade da árvore Merge commit
  17. 17. M
  18. 18. Estratégias Adotadas
  19. 19. Criar branches a partir do branch master
  20. 20. git checkout -b MY-FEATURE
  21. 21. master development feature
  22. 22. Criar branches a partir do branch master Branch auxiliar
  23. 23. git checkout -b MY-FEATURE-dev
  24. 24. Criar branches a partir do branch master Branch auxiliar Rebase antes de fazer merge
  25. 25. git fetch git rebase origin/dev
  26. 26. Criar branches a partir do branch master Branch auxiliar Rebase antes de fazer merge Reset em relação ao origin branch
  27. 27. git checkout dev git reset --hard origin/dev git merge MY-FEATURE-dev
  28. 28. Criar branches a partir do branch master Branch auxiliar Rebase antes de fazer merge Reset em relação ao origin branch Atualização constante com relação ao branch master
  29. 29. git fetch git rebase origin/master git push origin MY-FEATURE -f
  30. 30. Dicas e Boas Práticas
  31. 31. Voltar o comando
  32. 32. git reflog
  33. 33. git reset --hard HEAD@{1}
  34. 34. Voltar o comando Resolução de conflito sem abrir o arquivo
  35. 35. git checkout [--ours || --theirs]
  36. 36. git add -u git rebase [--continue || --skip]
  37. 37. Voltar o comando Resolução de conflito sem abrir o arquivo Resetar branches de integração
  38. 38. git reset --hard origin/master
  39. 39. Voltar o comando Resolução de conflito sem abrir o arquivo Resetar branches de integração Evitar resolução repetida de conflitos
  40. 40. rerere
  41. 41. rerere Reuse Recorded Resolution
  42. 42. git config --global rerere.enabled true
  43. 43. Voltar o comando Resolução de conflito sem abrir o arquivo Resetar branches de integração Evitar resolução repetida de conflitos Pull com rebase
  44. 44. git pull --rebase
  45. 45. git config --global pull.rebase true
  46. 46. Muito obrigado!

×