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
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
Programming with a DJ Controller — not vibe coding
m_seki
3
630
AIを導入する前にやるべきこと
negima
2
300
From Formal Specification to Property Based Test
ohbarye
0
480
Running Swift without an OS
kishikawakatsumi
0
860
個人的に嬉しかったpnpmの新機能・3選
matsuo_atsushi
0
100
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.7k
Spec-driven Development: How AI Changes Everything (And Nothing)
simas
PRO
0
410
NakouPAY説明用
annouim0
1
280
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
1k
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
370
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
260
Back to the roots of date
jinroq
0
530
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Designing for Timeless Needs
cassininazir
0
210
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
30 Presentation Tips
portentint
PRO
1
280
Producing Creativity
orderedlist
PRO
348
40k
BBQ
matthewcrist
89
10k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
280
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
200
Faster Mobile Websites
deanohume
310
31k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
530
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