FineTuningYourGitHubFlow
ADeeperDiveIntoGitHubWorkflows
stoe
stefan@github.com
@me_stoe
gracepark
grace@github.com
Grace Park
!
"
!
!
"
Stefan Stölzle
Agenda
Challenges
lessonslearnedfromreal
organizations
A classic
vertical organization
From the top down things can be pretty clear,
but
from the bottom up it can get foggy real quick
Most organizations struggle with
awareness of existing enterprise development
Organizational distance between developers
directly correlates to bugs and delays
“Good enough” solutions stop gaps,
but they don’t fulfill and retain people
Tools impact
Workflow
GitFlow
“a well tested, flexible workflow
that works for lots of developers”
Scott Chacon
scottchacon.com
Production
Staging
Testing
Dev 1
Dev 2
Dev X
master
hotfix
release
develop
feature
feature
v1.0 v1.1 v2.0
“it’s more complicated than (…) most developers
and development teams actually require”
Scott Chacon
scottchacon.com
GitHubFlow
master
feature
master
feature
master
develop
master
hotfix
master
release
one does not simply
merge into master
one does not simply
master
master
master
create a feature branch
w/ protected master
master
master
add commits
master
add commits
master
add commits
require CI status
open a PullRequest
master
master
discuss and review code
master
discuss and review code
master
discuss and review code
enforce code review
master
ready to merge
master
ready to merge
master
ready to merge
required branch to be up to date
all status checks passed
code review complete
master
merge w/ base
master
merge w/ base
master
merge w/ base
restrict who can merge
“It’s too simple.
Our teams need more control.”
a customer
YourGitHubFlow
develop
feature
master
hotfix
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
hotfix
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
hotfix
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
hotfix
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
hotfix
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
git cherry-pick 🍒
hotfix
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
hotfix
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
hotfix
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
hotfix
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
hotfix
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
git merge
v2.9 branch
v2.10 branch
v2.8 branch
v2.11 branch
v2.8.0
v2.9.0
v2.10.0
v2.11.0
v2.8.1 v2.8.2 v2.8.3
v2.9.1 v2.9.2
v2.10.1
hotfix
v2.8.4
v2.9.3
v2.10.2
v2.11.1
master
Q&A
Thankyou
stoe
stefan@github.com
@me_stoe
Stefan Stölzle
!
"
!
gracepark
grace@github.com
Grace Park
!
"
Fine Tuning Your GitHub Flow

Fine Tuning Your GitHub Flow