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
5
710
"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
210
Lessons Learned From 10 Years Of Testing
grumpycanuck
4
130
Learn To Test Like A Grumpy Programmer
grumpycanuck
0
240
Time Management For Grumpy Programmers
grumpycanuck
0
210
Learn To Test Like A Grumpy Programmer
grumpycanuck
1
240
Learn To Test Like A Grumpy Programmer
grumpycanuck
2
200
Grumpy Testing Patterns
grumpycanuck
1
960
Embrace Your Inner Grumpy: Metatesting in 2016
grumpycanuck
0
140
Smelly Tests
grumpycanuck
0
92
Other Decks in Programming
See All in Programming
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
0
290
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
380
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
670
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
170
ゲームの物理
fadis
3
590
0から始めるモジュラーモノリス-クリーンなモノリスを目指して
sushi0120
0
250
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
220
Workers を定期実行する方法は一つじゃない
rokuosan
0
140
書き捨てではなく継続開発可能なコードをAIコーディングエージェントで書くために意識していること
shuyakinjo
0
210
Vibe Codingの幻想を超えて-生成AIを現場で使えるようにするまでの泥臭い話.ai
fumiyakume
21
10k
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
120
Constant integer division faster than compiler-generated code
herumi
2
320
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Pragmatic Product Professional
lauravandoore
36
6.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
540
Designing Experiences People Love
moore
142
24k
Bash Introduction
62gerente
614
210k
Into the Great Unknown - MozCon
thekraken
40
2k
Adopting Sorbet at Scale
ufuk
77
9.5k
Agile that works and the tools we love
rasmusluckow
329
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Building an army of robots
kneath
306
45k
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