Post on 03-Sep-2014
description
Why Git?A quick trip down the Git rabbit hole.
Mark Guzmanmg@hasno.info @segy http://hasno.info
Thursday, March 4, 2010
What is Git
Distributed Version Control
Fast (small C core)
Popular (Github)
Stupid Content Tracker
Thursday, March 4, 2010
Benefits
Easier Merging
Cheap fast branching
Speed
Checkout size
Maintains an easily usable history
Redundancy by default
Thursday, March 4, 2010
Why Merging Tracking MattersHistory Matters
Why did Bob change 10 files in his branch 3 weeks back?
Why did you change some of the same files in yours?
How will you know a year down the road?
Thursday, March 4, 2010
File Based Change Tracking
Thursday, March 4, 2010
Changeset Tracking
✴Git treats all your changes as a single ChangeSet.✴It uses a SHA-1 hash of the changes to identify them✴Eg: commit 7ef55e41f1cf529e47723d869233492077c94896
Thursday, March 4, 2010
Stupid Content Tracking
Simple object relationships.
Tree (folder) -> Blob (file data)
Thursday, March 4, 2010
Commits -> Trees
Thursday, March 4, 2010
Refs (Branches)
Refs -> Commits -> Trees -> Blobs
Thursday, March 4, 2010
Staging
The Index (Staging Area) allows you to organize
Does the comment make sense for the commit?
Thursday, March 4, 2010
Centralized Workflow
Central Repository is treated as a hub for changes. It would drive automated builds.
Thursday, March 4, 2010
Distributed Workflow
You can pull from any compatible* source
Thursday, March 4, 2010
Branch & Merge tracking
Branch with changes
Merged Tree
Thursday, March 4, 2010
Rebase?
Take my commits and replay them after the HEAD of another branch.
Thursday, March 4, 2010
Windows Tools
TortoiseGit
Git Extensions
msysgit
Git Cheetah
git-gui
gitk
Thursday, March 4, 2010
Live Demo Time.
Thursday, March 4, 2010
Notes from the Trenches
Learning curve
Server setup easier on linux
Submodules != svn externals
Watch our for detached HEAD
Be EXTREMELY careful with a force push.
Thursday, March 4, 2010
Force things at your own risk.
Thursday, March 4, 2010
Why I choose Git.
Merging with history
Quick branch switching
Stashing and Staging
Best SCM I’ve used so far.
Thursday, March 4, 2010
QuestionsReferences
http://git-scm.com
http://github.com
http://code.google.com/p/tortoisegit/
http://code.google.com/p/gitextensions/
http://marklodato.github.com/visual-git-guide/
http://progit.org/book/
http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/
Thursday, March 4, 2010