Personal tools


From HaskellWiki

Revision as of 20:31, 6 September 2012 by Aristid (Talk | contribs)

Jump to: navigation, search


This page aims to introduce the concepts behind Git in a "Haskell way".


1 The DAG


2 Branches and tags


3 Objects

3.1 Kinds of objects


3.2 The object store

All the different objects in Git - individual files, entire directory trees, commits and other things - are stored in a repository-wide central store. Each object is identified by computing a SHA-1 hash, which is a function of only the object's contents.

3.3 Garbage collection and git reflog

When objects are not reachable from any root (like a branch reference), they become dangling and are subject to garbage collection. However, garbage collection does not kick in immediately.

When making a mistake, it is often helpful to look at commit objects by date independent of whether they are reachable, in order to be able to restore them. You can use git reflog for that.