Top Banner
Superando o GitFlow Workflow de git focado na entrega de valor em outsourcing com equipes distribuídas. Luiz Guerra [email protected] Renato Reva Gomes [email protected]
51

Drupal camp campinas 2016 superando o gitflow (luiz henrique guerra)

Apr 12, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

Superando o GitFlow Workflow de git focado na entrega de valor em outsourcing

com equipes distribuídas.

Luiz [email protected]

Renato Reva [email protected]

Page 2: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

Gitflow

master

release

development

feature 1

feature 2

feature 3

1.0

Page 3: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

Gitflow

master

release

development

1.0

hotfix

1.1

Page 4: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

Contexto de Trabalho /Necessidades

Page 5: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Equipe distribuída

Page 6: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Equipe distribuída

● Fluxo contínuo/kanban

Page 7: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Page 8: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Equipe distribuída

● Fluxo contínuo/kanban

● CI&CD

Page 9: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Equipe distribuída

● Fluxo contínuo/kanban

● CI&CD

● Independência entre features

Page 10: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Equipe distribuída

● Fluxo contínuo/kanban

● CI&CD

● Independência entre features

● Feedback constante

Page 11: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

ProblemasEnfrentados

Page 12: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Conflitos inesperados

Page 13: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Conflitos inesperados

● Imprevisibilidade na integração

Page 14: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Conflitos inesperados

● Imprevisibilidade na integração

● Dificuldade em entregar demandas isoladas

Page 15: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Conflitos inesperados

● Imprevisibilidade na integração

● Dificuldade em entregar demandas isoladas

● Complexidade da árvore

Page 16: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

tig

Page 17: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Page 18: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Conflitos inesperados

● Imprevisibilidade na integração

● Dificuldade em entregar demandas isoladas

● Complexidade da árvore

● Merge commit

Page 19: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

M

Page 20: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

EstratégiasAdotadas

Page 21: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Criar branches a partir do branch master

Page 22: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git checkout -b MY-FEATURE

Page 23: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

master

development

feature

Page 24: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Criar branches a partir do branch master

● Branch auxiliar

Page 25: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git checkout -b MY-FEATURE-dev

Page 26: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Criar branches a partir do branch master

● Branch auxiliar

● Rebase antes de fazer merge

Page 27: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git fetchgit rebase origin/dev

Page 28: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Criar branches a partir do branch master

● Branch auxiliar

● Rebase antes de fazer merge

● Reset em relação ao origin branch

Page 29: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git checkout devgit reset --hard origin/devgit merge MY-FEATURE-dev

Page 30: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● 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

Page 31: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git fetchgit rebase origin/mastergit push origin MY-FEATURE -f

Page 32: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Page 33: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

Dicas e BoasPráticas

Page 34: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Voltar o comando

Page 35: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git reflog

Page 36: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Page 37: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git reset --hard HEAD@{1}

Page 38: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Voltar o comando

● Resolução de conflito sem abrir o arquivo

Page 39: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Page 40: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git checkout [--ours || --theirs]

Page 41: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git add -ugit rebase [--continue || --skip]

Page 42: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Voltar o comando

● Resolução de conflito sem abrir o arquivo

● Resetar branches de integração

Page 43: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git reset --hard origin/master

Page 44: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● Voltar o comando

● Resolução de conflito sem abrir o arquivo

● Resetar branches de integração

● Evitar resolução repetida de conflitos

Page 45: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

rerere

Page 46: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

rerereReuse Recorded Resolution

Page 47: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git config --global rerere.enabled true

Page 48: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

● 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

Page 49: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git pull --rebase

Page 50: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

git config --global pull.rebase true

Page 51: Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)

Muito obrigado!