Git is a light-weight distribution version control system.

Git is built on 4 layers of abstractions like an onion, and each layer is based on another.

  1. Persistent map. The technical cornerstone is SHA1, a hashing algorithm.
  2. Content tracker
  3. Version control
  4. Distribute version control

A few things worth noting technically.

  1. Git is path independent because it is based on persistent maps.
  2. It is inherently easy to understand. It only has four types of objects, blob, tree, commit, tag.
  3. A branch is just a commit. This idea really blew me away because I never think from this perspective. Branching is super easy to understand.
  4. A commit is a snapshot of the persistent map.
  5. Rebase. Nice concept if used correctly
  6. Good fit for distributed peers like open source projects



  1. Paolo Perrotta, How Git Works, Pluralsight
  2. https://docs.microsoft.com/en-us/vsts/tfvc/comparison-git-tfvc
  3. https://www.petri.com/team-foundation-version-control-verses-git-visual-studio-team-services