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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Chris Hartjes
February 01, 2012
Programming
770
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
260
Lessons Learned From 10 Years Of Testing
grumpycanuck
4
160
Learn To Test Like A Grumpy Programmer
grumpycanuck
0
270
Time Management For Grumpy Programmers
grumpycanuck
0
240
Learn To Test Like A Grumpy Programmer
grumpycanuck
1
290
Learn To Test Like A Grumpy Programmer
grumpycanuck
2
230
Grumpy Testing Patterns
grumpycanuck
1
1k
Embrace Your Inner Grumpy: Metatesting in 2016
grumpycanuck
0
160
Smelly Tests
grumpycanuck
0
120
Other Decks in Programming
See All in Programming
yield再入門 #phpcon
o0h
PRO
0
460
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
530
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
520
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.5k
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
460
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6.2k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.8k
関数型プログラミングのメリットって何だろう?
wanko_it
0
180
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
220
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
140
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
770
Featured
See All Featured
Making Projects Easy
brettharned
120
6.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
Embracing the Ebb and Flow
colly
88
5.1k
RailsConf 2023
tenderlove
30
1.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
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