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
"You've decided to Use Git as Your VCS for Your...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Chris Hartjes
February 01, 2012
Programming
5
750
"You've decided to Use Git as Your VCS for Your Team...So Now What?
Slides from the presentation I gave at the php|arch Git Summit
Chris Hartjes
February 01, 2012
Tweet
Share
More Decks by Chris Hartjes
See All by Chris Hartjes
Confessions of a not-so-accidental leader
grumpycanuck
0
240
Lessons Learned From 10 Years Of Testing
grumpycanuck
4
140
Learn To Test Like A Grumpy Programmer
grumpycanuck
0
250
Time Management For Grumpy Programmers
grumpycanuck
0
230
Learn To Test Like A Grumpy Programmer
grumpycanuck
1
270
Learn To Test Like A Grumpy Programmer
grumpycanuck
2
220
Grumpy Testing Patterns
grumpycanuck
1
1k
Embrace Your Inner Grumpy: Metatesting in 2016
grumpycanuck
0
150
Smelly Tests
grumpycanuck
0
100
Other Decks in Programming
See All in Programming
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.3k
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
110
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
600
The free-lunch guide to idea circularity
hollycummins
0
200
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
140
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
460
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
560
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.5k
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
How to stabilize UI tests using XCTest
akkeylab
0
130
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
220
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
540
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.4k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
110
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
The Invisible Side of Design
smashingmag
302
51k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
So, you think you're a good person
axbom
PRO
2
2k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Believing is Seeing
oripsolob
1
84
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
82
Transcript
“You’ve decided to Use Git as Your VCS for Your
Team...So Now What?” Chris Hartjes -- Moontoast
$progStartYear = 1982; $firstComputer = ‘VIC-20’; $phpStartYear = 1998;
High-traffic online dating Sports data integration Social commerce platform
None
None
News feed • at a glance see who’s been doing
things • see exactly what’s been done
Access control • makes it easy to add outside contributors
via public keys • control who has access to specific repos
Web-based viewing • CLI sucks for looking at code changes
• Tweaking of web UI always working towards smoother experience
None
None
None
None
None
• master • stage • uatX • feature branches •
hotfix branches
Contains only code in production master branch
stage branch
uatX branches
feature branches
chartjes@marmalade [~/pi] -> % git checkout -b feature-git-summit Switched to
a new branch 'feature-git-summit' chartjes@marmalade [~/pi] -> % * choose consistent naming scheme * Moontoast uses project milestone name * ALWAYS create off of master branch
hotfix branches
chartjes@marmalade [~/pi] -> % git checkout master Switched to branch
'master' chartjes@marmalade [~/pi] -> % git checkout -b hotfix-1234-git-summit Switched to a new branch 'hotfix-1234-git-summit' chartjes@marmalade [~/pi] -> % * always named after ticket number * ALWAYS create off of master branch
None
Merging branches chartjes@marmalade [~/pi] -> % git checkout feature-git-summit Switched
to branch 'feature-git-summit' chartjes@marmalade [~/pi] -> % git merge --no-ff master
Care and feeding for your branches
• long-running feature branches increase risk of nasty conflicts •
best practice is to merge master INTO feature branches EVERY time a production push occurs
Integration with deployment tools
None
Whiskey Disk • https://github.com/flogic/whiskey_disk • “Embarrassingly fast deployments”
• updates code-in-place via ‘git pull’ • runs shell scripts
to perform other duties • encourages practice of separate repo for configuration files for your application Whiskey Disk
Other Git aware tools • Capistrano (Ruby but not Ruby
only) • Jenkins (CI server) • Deployinator (open sourced by Etsy)
How did Moontoast do it again?
Used GitHub • self-hosting Git repos requires resources • management
tools make a huge difference • GitHub API allows for innovative solutions
Branch-and-Merge • allows for parallel development • branching is a
“cheap” behaviour • be careful with long-running branches • DON’T CROSS THE STREAMS
Git-aware deployments • Most modern tools support Git • GitHub
API FTW (IRC bot that deploys?)
Thank you! • @grmpyprogrammer • http://www.littlehart.net/atthekeyboard