Git is an Onion


(Team) #1

Git involves using high level commands known as porcelain commands such as add and commit and using low level commands known as plumbing commands such as cat-file and hash-object.

The secret to mastering Git is about understanding the conceptual model behind Git. In short, Git is an onion having several layers and each command work over a small set of these layers.

Read this article to get the intuition of this view of Git as an onion

Git has the following simplied abstractions/ layes:

  • A Distributed Revision Control System
  • A Revision Control System
  • A Simple Content Tracker
  • A Persistent Map

  • Have a doubt or thought? Join the discussion now
    This is a companion discussion topic for the original entry at

(Bhupesh Varshney) #2

So what kind of model is Git?
I mean how briefly a beginner can know about that model :slight_smile:

(Aditya Chatterjee) #3

The layered view of Git is, particularly, useful in understanding the various levels each commands work on and a basic ground on how to approach to build a version control system like Git :sparkles:

Several design principles must have been put to use on Git development. The first step to understand the source code of Git would be to browse through the release notes to understand how it developed over the years