Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Branching - Getting It Right for Us
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Luke van der Hoeven
August 30, 2013
Programming
49
2
Share
Branching - Getting It Right for Us
Sometimes the way you do it is not the way we do it...
Luke van der Hoeven
August 30, 2013
More Decks by Luke van der Hoeven
See All by Luke van der Hoeven
TrainWreck: Architecture
plukevdh
1
61
Other Decks in Programming
See All in Programming
横断組織出身のQAEがインプロセスQAEでつまずいたこと・活かせたこと
ty89
0
460
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
320
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
380
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
240
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
490
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
250
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
3
1.3k
TSKaigi 2026 TypeScriptバックエンドのオブザーバビリティ戦略 — Datadog × NestJSの実践
taiseiyamamotoan
1
210
Zod v4 Codec でスキーマに型変換を埋め込む REST API 設計 #TSKaigi2026
ryutaro_yako
0
170
Claspは野良GASの夢をみるか
takter00
0
140
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
140
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
530
Featured
See All Featured
Navigating Team Friction
lara
192
16k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
520
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
300
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Leo the Paperboy
mayatellez
7
1.8k
The Cult of Friendly URLs
andyhume
79
6.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
220
Information Architects: The Missing Link in Design Systems
soysaucechin
0
940
Crafting Experiences
bethany
1
160
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.2k
Transcript
Branching Getting It Right...
...for us
We’ve Been Here Before Now we know what we’re doing...
...maybe
The Hybrid Model
• Master Integration • Feature • Release Assembly Three Types
of Branches
• Contains only released code • Always releasable (continuous deployment)
• No active work ongoing What Is: Master
• Active, in-progress work • New code is always done
in a feature branch • Contains an independent, fully-functional feature What Is: Feature
• Contains code being prepared for release • Made up
of merges from feature branches • No active work ongoing. What Is: Release
A Generic Scenario
None
Another day, another promotion
None
Break Them Up
None
Work Progresses and Time Passes
None
Time to Think QA and Releases
None
What’s Going On • QA starts testing the release •
Developers are working on the feature branches • Life is good...
When suddenly, QA finds a BUG as they often do
If the bug is with Feature A, where does the
fix go? QA starts testing here, finds bug...
fixed here
QA resumes testing here Merge feature branch to release branch
again
Good thing we branched.
None
None
And finally, it’s ready for release!
After the release is done, code is shipped, everyone is
happy...
None
But wait, someone decided to kill Feature B two days
before release! WHAT DO WE DO?
We burn the office to the ground.
Not an option?
Good thing we branched.
None
Delete the release branch!
Create a new release branch! QA resumes testing with new
release
That was easy.
Good thing we branched.
None
Oh snap, we need to start on the next release
RIGHT NOW
None
Good thing we branched.
None
got the theme yet?
The Rules • All work is done in feature branches
• All release branches must be branched from master • Master contains only released code
An Important Note • Merge direction is critical to keeping
code isolated • Releases only merge down to master or from features. • Features only merge up from master
Note the direction of the dotted lines
Any Last Thoughts?
I’m glad you asked
Use GIT