superando o gitflow - drupalcamp campinas 2016

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

Upload: taller-negocio-digitais

Post on 11-Apr-2017

254 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Superando o GitFlow - DrupalCamp Campinas 2016

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

outsourcingcom equipes distribuídas.

Luiz [email protected]

Renato Reva [email protected]

Page 2: Superando o GitFlow - DrupalCamp Campinas 2016

Gitflowmaster releas

edevelopment feature

1 feature 2feature 3

1.0

Page 3: Superando o GitFlow - DrupalCamp Campinas 2016

Gitflowmaster

releasedevelopme

nt

1.0

hotfix

1.1

Page 4: Superando o GitFlow - DrupalCamp Campinas 2016

Contexto de Trabalho

/Necessidades

Page 5: Superando o GitFlow - DrupalCamp Campinas 2016

Equipe distribuída

Page 6: Superando o GitFlow - DrupalCamp Campinas 2016

Equipe distribuída

Fluxo contínuo/kanban

Page 7: Superando o GitFlow - DrupalCamp Campinas 2016
Page 8: Superando o GitFlow - DrupalCamp Campinas 2016

Equipe distribuída

Fluxo contínuo/kanban

CI&CD

Page 9: Superando o GitFlow - DrupalCamp Campinas 2016

Equipe distribuída

Fluxo contínuo/kanban

CI&CD

Independência entre features

Page 10: Superando o GitFlow - DrupalCamp Campinas 2016

Equipe distribuída

Fluxo contínuo/kanban

CI&CD

Independência entre features

Feedback constante

Page 11: Superando o GitFlow - DrupalCamp Campinas 2016

ProblemasEnfrentados

Page 12: Superando o GitFlow - DrupalCamp Campinas 2016

Conflitos inesperados

Page 13: Superando o GitFlow - DrupalCamp Campinas 2016

Conflitos inesperados

Imprevisibilidade na integração

Page 14: Superando o GitFlow - DrupalCamp Campinas 2016

Conflitos inesperados

Imprevisibilidade na integração

Dificuldade em entregar demandas

isoladas

Page 15: Superando o GitFlow - DrupalCamp Campinas 2016

Conflitos inesperados

Imprevisibilidade na integração

Dificuldade em entregar demandas

isoladas

Complexidade da árvore

Page 16: Superando o GitFlow - DrupalCamp Campinas 2016

tig

Page 17: Superando o GitFlow - DrupalCamp Campinas 2016
Page 18: Superando o GitFlow - DrupalCamp Campinas 2016

Conflitos inesperados

Imprevisibilidade na integração

Dificuldade em entregar demandas

isoladas

Complexidade da árvore

Merge commit

Page 19: Superando o GitFlow - DrupalCamp Campinas 2016

M

Page 20: Superando o GitFlow - DrupalCamp Campinas 2016

EstratégiasAdotadas

Page 21: Superando o GitFlow - DrupalCamp Campinas 2016

Criar branches a partir do branch master

Page 22: Superando o GitFlow - DrupalCamp Campinas 2016

git checkout -b MY-FEATURE

Page 23: Superando o GitFlow - DrupalCamp Campinas 2016

masterdevelopment

feature

Page 24: Superando o GitFlow - DrupalCamp Campinas 2016

Criar branches a partir do branch master

Branch auxiliar

Page 25: Superando o GitFlow - DrupalCamp Campinas 2016

git checkout -b MY-FEATURE-dev

Page 26: Superando o GitFlow - DrupalCamp Campinas 2016

Criar branches a partir do branch master

Branch auxiliar

Rebase antes de fazer merge

Page 27: Superando o GitFlow - DrupalCamp Campinas 2016

git fetchgit rebase origin/dev

Page 28: Superando o GitFlow - DrupalCamp Campinas 2016

Criar branches a partir do branch master

Branch auxiliar

Rebase antes de fazer merge

Reset em relação ao origin branch

Page 29: Superando o GitFlow - DrupalCamp Campinas 2016

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

Page 30: Superando o GitFlow - DrupalCamp Campinas 2016

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: Superando o GitFlow - DrupalCamp Campinas 2016

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

Page 32: Superando o GitFlow - DrupalCamp Campinas 2016
Page 33: Superando o GitFlow - DrupalCamp Campinas 2016

Dicas e BoasPráticas

Page 34: Superando o GitFlow - DrupalCamp Campinas 2016

Voltar o comando

Page 35: Superando o GitFlow - DrupalCamp Campinas 2016

git reflog

Page 36: Superando o GitFlow - DrupalCamp Campinas 2016
Page 37: Superando o GitFlow - DrupalCamp Campinas 2016

git reset --hard HEAD@{1}

Page 38: Superando o GitFlow - DrupalCamp Campinas 2016

Voltar o comando

Resolução de conflito sem abrir o arquivo

Page 39: Superando o GitFlow - DrupalCamp Campinas 2016
Page 40: Superando o GitFlow - DrupalCamp Campinas 2016

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

Page 41: Superando o GitFlow - DrupalCamp Campinas 2016

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

Page 42: Superando o GitFlow - DrupalCamp Campinas 2016

Voltar o comando

Resolução de conflito sem abrir o arquivo

Resetar branches de integração

Page 43: Superando o GitFlow - DrupalCamp Campinas 2016

git reset --hard origin/master

Page 44: Superando o GitFlow - DrupalCamp Campinas 2016

Voltar o comando

Resolução de conflito sem abrir o arquivo

Resetar branches de integração

Evitar resolução repetida de conflitos

Page 45: Superando o GitFlow - DrupalCamp Campinas 2016

rerere

Page 46: Superando o GitFlow - DrupalCamp Campinas 2016

rerereReuse Recorded

Resolution

Page 47: Superando o GitFlow - DrupalCamp Campinas 2016

git config --global rerere.enabled true

Page 48: Superando o GitFlow - DrupalCamp Campinas 2016

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: Superando o GitFlow - DrupalCamp Campinas 2016

git pull --rebase

Page 50: Superando o GitFlow - DrupalCamp Campinas 2016

git config --global pull.rebase true

Page 51: Superando o GitFlow - DrupalCamp Campinas 2016

Muito obrigado!