http://flic.
kr/p/6oP7x7
Version Control with Git
Version Control
Why track/manage different versions of code?
Version Control
Why track/manage different versions of code?
• Backup: Undo or refer to old stuff
• Branch: Maintain old release while working on new
• Collaborate: Work in parallel with teammates
Version Control Systems (VCSs)
• Help you track/manage/distribute revisions
• Standard in modern development
• Examples:
older – Revision Control System (RCS)
– Concurrent Versions System (CVS)
– Subversion (SVN)
newer – Git
Our focus
Version Control Hosting Services
• Enable sharing version control repos
• Internet/Web based
• Examples:
– SourceForge
– Bitbucket
– GitLab
– GitHub
Our focus
GitHub-User Perspective
You GitHub
GitHub-User Perspective
You GitHub
Working Dir
GitHub-User Perspective
You GitHub
Working Dir
Local
Repos
GitHub-User Perspective
You GitHub
Working Dir
Local Remote
Repos Repos
Using GitHub
to Collaborate GitHub
Remote
Repos
Questions to answer
How organized?
You GitHub
Working Dir
Local Remote
Repos Repos
What operations?
Repo Organization
http://git-scm.com/book/
Repo Organization
Commits (from oldest
to newest; hashes as
commit IDs)
http://git-scm.com/book/
Repo Organization
Snapshot of all files
at each commit
http://git-scm.com/book/
Repo Organization
Branch (last commit)
http://git-scm.com/book/
Local repos also have...
HEAD
Current Version in
Working Dir
http://git-scm.com/book/
Local Repo Operations
You
• init
• add/commit
Working Dir
Local • log
Repos • switch/checkout
• branch
• merge
• …
How commit Before
works... HEAD
http://git-scm.com/book/
How commit After
works... HEAD
http://git-scm.com/book/
Remote Repo Operations
You GitHub
Local Remote • clone
Repos Repos • push
• pull
• fetch
• remote
• ...
Learn the Core Local/Remote Operations
• Demo Videos:
– https://scott-fleming.github.io/web-dev-rails-git-tutorial/demo-04-git-local.html
– https://scott-fleming.github.io/web-dev-rails-git-tutorial/demo-05-git-
branches.html
– https://scott-fleming.github.io/web-dev-rails-git-tutorial/demo-06-git-
remote.html
Summary
• Version Control Systems
• Git and GitHub
• Repo Structure
• Local/Remote Repo Operations
• Commit Semantics