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
Advanced Git - Paul Grayson
Search
Las Vegas Ruby Group
August 14, 2013
1
75
Advanced Git - Paul Grayson
Las Vegas Ruby Group
August 14, 2013
Tweet
Share
More Decks by Las Vegas Ruby Group
See All by Las Vegas Ruby Group
Ruby ISO Standard - David Grayson
lvrug
0
120
Windows Automation - Howard Feldman
lvrug
0
59
Separating Your Application from Rails - Brian Hughes
lvrug
0
110
SWIG and Ruby - David Grayson
lvrug
0
66
Practical Object-Oriented Design in Ruby - Charles Jackson
lvrug
3
120
The Hamster Gem - Ryan Mulligan
lvrug
1
82
Varnish+Redis - Russ Smith
lvrug
1
92
Lambdas and Pops - Jan Hettich
lvrug
0
64
Making Good Use of Fonts - Russ Smith
lvrug
1
77
Featured
See All Featured
Building Adaptive Systems
keathley
43
2.6k
Become a Pro
speakerdeck
PRO
28
5.4k
RailsConf 2023
tenderlove
30
1.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Why Our Code Smells
bkeepers
PRO
337
57k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
920
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Writing Fast Ruby
sferik
628
61k
Gamification - CAS2011
davidbonilla
81
5.3k
Music & Morning Musume
bryan
46
6.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Transcript
Advanced Git: Multiple Branches and Servers Paul Grayson 2013-08-14
Simple Git • One server: “origin” • One branch: “master”
Demo: make a commit and push
Goal Use Git with multiple branches and servers, and know
what is going on.
What is a branch? A label for a state of
the repository - Current files (the commit) and all history. • List: git branch [-a] • Create: git branch <name> • Read: git show-branch, git log • Update: git commit • Delete: git branch -d <name>
Structure of Git history branch1 master
History of branch1 branch1 master
History of master branch1 master
branch1 --not master branch1 master
master --not branch1 branch1 master
Merging: the main point of branches branch1 master merge base
Checking changes on a branch • git log A --not
B • gitk A --not B • git merge-base A B • git log -1 commit • git log --oneline --graph • git diff A B
Multiple servers • Repositories on servers are called remotes -
but so are some other things, watch out! • Look at .git/config • git fetch server • git push server A:B
Git history with remotes branch1 master server/master origin/master
Git history with remotes branch1 master server/master origin/master LOCAL CACHED
COPIES!!!!
Checking remote branches git fetch Then use same techniques as
for branches • git log remote/A --not remote/B • gitk remote/A --not remote/B • git show-branch --merge-base ... • git log -1 commit • git log --oneline --graph • git diff remote/A remote/B
Putting it together: simple two-server workflow origin - code archive
server - production git showchanges branch1 git merge branch1 git push origin master git push origin :branch1 git push server master (on server) git merge master
Final touch: make it like Heroku using post-receive #!/bin/sh unset
GIT_DIR cd .. exec git merge master --ff