Distributed Version Control using Git                 

Created/Presented by: Ashwin Hegde

All graphical assets are licensed under the Creative Commons Attribution 3.0 Unported License.

Agenda

  1. Understanding version control.
  2. History.
  3. Distributed version control.
  4. Git introduction & installation.
  5. Console environment.
  6. Making Your First Commit.
  7. File changes operations.
  8. Git log operations.
  9. Undo changes operations.

Part 1

E.g., of version control (non-source)

  • File naming (workbook_v1.xls, logo_v2.png).
  • MS Word's Track changes.
  • Adobe Protoshop's history.
  • Undo: Ctrl + z (Windows), cmd + z (Mac-os).

Understanding Version Control

Keeps track of changes:

  • especially text changes.
  • version 1, version 2, ... version n.
  • Version Control System (VCS).
  • Objective: to manage source code.
  • Source Code Management (SCM) tool.

Why version control ?

  • Made a change to code, revert back.
  • Lost code or backup.
  • Maintain multiple version.
  • See the difference between versions and files.
  • Review the history of some code.
  • Submit a change to someone else's code.
  • Track how much work is being done, where, when and by whom?
  • Experiment a new feature without interfering with working code?

1982

1986

2000

2002

2005

1972

Source Code Control System (SCCS), closed source, free with Unix.

Revision Control System (RCS)open source.

Concurrent Version System (CVS), open source.

Apache Subversion (SVN), open source.

Git (DVCS)

History

BitKeeper SCM, (DVCS)

  • BitKeeper SCM
    • 2000, closed source, proprietary.
    • distributed version control.
    • "community version" was free. 
    • used for Linux Kernal from 2002-2005.
    • April 2005: the "community version" not free anymore.

History cont.

History cont.

  • Git is born
    • April 2005.
    • Created by Linux Torvalds.
    • Distributed version control.
    • Open source.
  • Junio Hamano
    • Japanese Software Engineer and a Hacker.
    • Maintainer of Git, since July 2005.
    • Works at Google.

CVCS - SVN

DVCS - Git

Git - Part 1

By Ashwin Hegde

Git - Part 1

Quick introduction to Git distributed version control and its basics

  • 1,428