Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
"You've decided to Use Git as Your VCS for Your...
Search
Chris Hartjes
February 01, 2012
Programming
800
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
"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
280
Lessons Learned From 10 Years Of Testing
grumpycanuck
4
180
Learn To Test Like A Grumpy Programmer
grumpycanuck
0
280
Time Management For Grumpy Programmers
grumpycanuck
0
250
Learn To Test Like A Grumpy Programmer
grumpycanuck
1
300
Learn To Test Like A Grumpy Programmer
grumpycanuck
2
240
Grumpy Testing Patterns
grumpycanuck
1
1k
Embrace Your Inner Grumpy: Metatesting in 2016
grumpycanuck
0
170
Smelly Tests
grumpycanuck
0
140
Other Decks in Programming
See All in Programming
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
Railsバージョンを4倍にした話
optim
0
950
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.8k
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
210
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
360
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
Rails初心者がパスキーを実装してみて大変だったこと
ktombow
0
150
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
3
1.4k
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
910
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
So, you think you're a good person
axbom
PRO
2
2.3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
670
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
970
Chasing Engaging Ingredients in Design
codingconduct
0
390
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
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