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 Team...So Now What?
Search
Chris Hartjes
February 01, 2012
Programming
5
600
"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
150
Lessons Learned From 10 Years Of Testing
grumpycanuck
3
110
Learn To Test Like A Grumpy Programmer
grumpycanuck
0
200
Time Management For Grumpy Programmers
grumpycanuck
0
170
Learn To Test Like A Grumpy Programmer
grumpycanuck
1
210
Learn To Test Like A Grumpy Programmer
grumpycanuck
2
180
Grumpy Testing Patterns
grumpycanuck
1
830
Embrace Your Inner Grumpy: Metatesting in 2016
grumpycanuck
0
100
Smelly Tests
grumpycanuck
0
63
Other Decks in Programming
See All in Programming
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
230
Git Rebase
bkuhlmann
11
1.6k
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
380
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
140
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
800
Ruby GitHub Packages
bkuhlmann
0
630
Hanami and htmx
bkuhlmann
0
210
Tailwind CSSを本気でカスタマイズする方法
fsubal
13
5.3k
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
170
Site Reliability Engineering for GMO
pyama86
8
1k
ゆるい個人開発のススメ
kuroppe1819
10
990
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
330
Featured
See All Featured
Atom: Resistance is Futile
akmur
259
25k
Web Components: a chance to create the future
zenorocha
305
41k
A designer walks into a library…
pauljervisheath
200
23k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
How to name files
jennybc
65
93k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
Thoughts on Productivity
jonyablonski
58
3.8k
How GitHub (no longer) Works
holman
304
140k
Building an army of robots
kneath
300
41k
Product Roadmaps are Hard
iamctodd
44
9.7k
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