Why Git

Post on 03-Sep-2014

3.293 views 1 download

Tags:

description

Why Git?" talk at the Fairfield-Westchester Dot Net User Group.

Transcript of Why Git

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