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
760
5
Share
"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
More Decks by Chris Hartjes
See All by Chris Hartjes
Confessions of a not-so-accidental leader
grumpycanuck
0
250
Lessons Learned From 10 Years Of Testing
grumpycanuck
4
150
Learn To Test Like A Grumpy Programmer
grumpycanuck
0
260
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
160
Smelly Tests
grumpycanuck
0
110
Other Decks in Programming
See All in Programming
의존성 주입과 모듈화
fornewid
0
130
Don't Prompt Harder, Structure Better
kitasuke
0
750
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
1
110
AIエージェントで業務改善してみた
taku271
0
520
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
170
CDK Deployのための ”反響定位”
watany
4
750
Make GenAI Production-Ready with Kubernetes Patterns
bibryam
0
120
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
410
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
260
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
280
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
360
アーキテクチャモダナイゼーションとは何か
nwiizo
17
5.1k
Featured
See All Featured
Accessibility Awareness
sabderemane
0
100
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
510
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How GitHub (no longer) Works
holman
316
150k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
200
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Docker and Python
trallard
47
3.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Navigating Team Friction
lara
192
16k
Being A Developer After 40
akosma
91
590k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
520
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
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