Slide 1

Slide 1 text

INTRO TO GIT or How I Learned to Stop Worrying and Love the VCS Henry Umansky Princeton University

Slide 2

Slide 2 text

About Version Control Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. •  Local Version Control System •  Centralized Version Control System •  Distributed Version Control Systems Source: Pro Git (

Slide 3

Slide 3 text

Local Version Control Systems

Slide 4

Slide 4 text

Centralized Version Control Systems

Slide 5

Slide 5 text

Distributed Version Control Systems

Slide 6

Slide 6 text

Short History of Git “I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.” – Linus Torvalds •  Created by Linus Torvalds, the creator of Linux, in 2005 •  Replacement for BitKeeper SCM for the Linux kernel •  Goals: •  Speed •  Simple •  Non-linear development (parallel branching) •  Fully distributed •  Handle large projects (like the Linux kernel) efficiently

Slide 7

Slide 7 text

Benefits of Git •  Branching and Merging •  Small and Fast •  Distributed •  Data Assurance •  Staging Area •  Free and Open Source

Slide 8

Slide 8 text

Git Workflow Subversion-style Workflow Integration Manager Workflow

Slide 9

Slide 9 text

A Successful Git Branching Model Source:

Slide 10

Slide 10 text

Git Basics

Slide 11

Slide 11 text


Slide 12

Slide 12 text

Git Hosting •  GitHub – SCM, Issue Tracking, Wiki •  BitBucket – same as GitHub, but also always Mercurial •  Google Code – Full Project Hosting •  Gitosis – self hosted git server •

Slide 13

Slide 13 text

Git Resources •  Pro Git Book •  Git Primer •  A Visual Git Reference •  Git for Computer Sciencetists