What Every VCS Must do

What does any Version Control System (“VCS”) need to be able to provide to its users?

  1. File repository (“the repo”): The files in the repository created by the users, of course!
  2. Meta-Data: For every change/checkin, a record of some “meta-data” about the changes/differences such as:
    • When the changes were made
    • Who made the changes
    • Comments/text the user adds when they check-in the the change (For example “This checkin fixes bug #141293847129384719″)
  3. Change History: When requested by the user, report the changes/differences between all files in any aribtrary checkin A and checkin B.
  4. Tags: A way to name and then refer to various versions of the source code when a noteworthy release is made. For example when you have the final check-in for version v1.0, you might tag the current source tree as v1.0. Later when you have version v1.5 checked out, but a customer calls with a bug in v1.0, you can easily “check out” the source code to v1.0 to inspect it and fix the bug.

What Every VCS Provides

For more details about what a Version Control System provides and why it is helpful, see A Visual Guide to Version Control.

Next: Why Use Git Instead of a Legacy Version Control System?
Previous: Skip the intro: Just Tell Me What I need to Git Going!
Where Do I Get Git?
All Git Object Types: Blob, Tree, Commit and Tag