superando o gitflow - drupalcamp campinas 2016

Post on 11-Apr-2017

254 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

outsourcingcom equipes distribuídas.

Luiz Guerraluiz.guerra@taller.net.br

Renato Reva Gomesrenato@taller.net.br

Gitflowmaster releas

edevelopment feature

1 feature 2feature 3

1.0

Gitflowmaster

releasedevelopme

nt

1.0

hotfix

1.1

Contexto de Trabalho

/Necessidades

Equipe distribuída

Equipe distribuída

Fluxo contínuo/kanban

Equipe distribuída

Fluxo contínuo/kanban

CI&CD

Equipe distribuída

Fluxo contínuo/kanban

CI&CD

Independência entre features

Equipe distribuída

Fluxo contínuo/kanban

CI&CD

Independência entre features

Feedback constante

ProblemasEnfrentados

Conflitos inesperados

Conflitos inesperados

Imprevisibilidade na integração

Conflitos inesperados

Imprevisibilidade na integração

Dificuldade em entregar demandas

isoladas

Conflitos inesperados

Imprevisibilidade na integração

Dificuldade em entregar demandas

isoladas

Complexidade da árvore

tig

Conflitos inesperados

Imprevisibilidade na integração

Dificuldade em entregar demandas

isoladas

Complexidade da árvore

Merge commit

M

EstratégiasAdotadas

Criar branches a partir do branch master

git checkout -b MY-FEATURE

masterdevelopment

feature

Criar branches a partir do branch master

Branch auxiliar

git checkout -b MY-FEATURE-dev

Criar branches a partir do branch master

Branch auxiliar

Rebase antes de fazer merge

git fetchgit rebase origin/dev

Criar branches a partir do branch master

Branch auxiliar

Rebase antes de fazer merge

Reset em relação ao origin branch

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

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

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

Dicas e BoasPráticas

Voltar o comando

git reflog

git reset --hard HEAD@{1}

Voltar o comando

Resolução de conflito sem abrir o arquivo

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

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

Voltar o comando

Resolução de conflito sem abrir o arquivo

Resetar branches de integração

git reset --hard origin/master

Voltar o comando

Resolução de conflito sem abrir o arquivo

Resetar branches de integração

Evitar resolução repetida de conflitos

rerere

rerereReuse Recorded

Resolution

git config --global rerere.enabled true

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

git pull --rebase

git config --global pull.rebase true

Muito obrigado!

top related