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
220
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
250
Learn To Test Like A Grumpy Programmer
grumpycanuck
2
200
Grumpy Testing Patterns
grumpycanuck
1
980
Embrace Your Inner Grumpy: Metatesting in 2016
grumpycanuck
0
140
Smelly Tests
grumpycanuck
0
96
Other Decks in Programming
See All in Programming
Catch Up: Go Style Guide Update
andpad
0
220
複雑化したリポジトリをなんとかした話 pipenvからuvによるモノレポ構成への移行
satoshi256kbyte
1
1k
大規模アプリのDIフレームワーク刷新戦略 ~過去最大規模の並行開発を止めずにアプリ全体に導入するまで~
mot_techtalk
1
440
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
220
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
310
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.3k
CSC509 Lecture 04
javiergs
PRO
0
300
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
150
CSC509 Lecture 05
javiergs
PRO
0
300
10年もののAPIサーバーにおけるCI/CDの改善の奮闘
mbook
0
810
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
3
400
Django Ninja による API 開発効率化とリプレースの実践
kashewnuts
0
1.3k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
30
2.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
What's in a price? How to price your products and services
michaelherold
246
12k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Producing Creativity
orderedlist
PRO
347
40k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
900
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Leading Effective Engineering Teams in the AI Era
addyosmani
2
320
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