Page 1
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
Gitflow
master
release
development
feature 1
feature 2
feature 3
1.0
Page 3
Gitflow
master
release
development
1.0
hotfix
1.1
Page 4
Contexto de Trabalho /Necessidades
Page 5
● Equipe distribuída
Page 6
● Equipe distribuída
● Fluxo contínuo/kanban
Page 8
● Equipe distribuída
● Fluxo contínuo/kanban
● CI&CD
Page 9
● Equipe distribuída
● Fluxo contínuo/kanban
● CI&CD
● Independência entre features
Page 10
● Equipe distribuída
● Fluxo contínuo/kanban
● CI&CD
● Independência entre features
● Feedback constante
Page 11
ProblemasEnfrentados
Page 12
● Conflitos inesperados
Page 13
● Conflitos inesperados
● Imprevisibilidade na integração
Page 14
● Conflitos inesperados
● Imprevisibilidade na integração
● Dificuldade em entregar demandas isoladas
Page 15
● Conflitos inesperados
● Imprevisibilidade na integração
● Dificuldade em entregar demandas isoladas
● Complexidade da árvore
Page 18
● Conflitos inesperados
● Imprevisibilidade na integração
● Dificuldade em entregar demandas isoladas
● Complexidade da árvore
● Merge commit
Page 20
EstratégiasAdotadas
Page 21
● Criar branches a partir do branch master
Page 22
git checkout -b MY-FEATURE
Page 23
master
development
feature
Page 24
● Criar branches a partir do branch master
● Branch auxiliar
Page 25
git checkout -b MY-FEATURE-dev
Page 26
● Criar branches a partir do branch master
● Branch auxiliar
● Rebase antes de fazer merge
Page 27
git fetchgit rebase origin/dev
Page 28
● Criar branches a partir do branch master
● Branch auxiliar
● Rebase antes de fazer merge
● Reset em relação ao origin branch
Page 29
git checkout devgit reset --hard origin/devgit merge MY-FEATURE-dev
Page 30
● 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
git fetchgit rebase origin/mastergit push origin MY-FEATURE -f
Page 33
Dicas e BoasPráticas
Page 34
● Voltar o comando
Page 37
git reset --hard HEAD@{1}
Page 38
● Voltar o comando
● Resolução de conflito sem abrir o arquivo
Page 40
git checkout [--ours || --theirs]
Page 41
git add -ugit rebase [--continue || --skip]
Page 42
● Voltar o comando
● Resolução de conflito sem abrir o arquivo
● Resetar branches de integração
Page 43
git reset --hard origin/master
Page 44
● Voltar o comando
● Resolução de conflito sem abrir o arquivo
● Resetar branches de integração
● Evitar resolução repetida de conflitos
Page 46
rerereReuse Recorded Resolution
Page 47
git config --global rerere.enabled true
Page 48
● 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
git pull --rebase
Page 50
git config --global pull.rebase true