<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Git_-_Under_the_Bonnet</id>
	<title>Git - Under the Bonnet - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Git_-_Under_the_Bonnet"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Git_-_Under_the_Bonnet&amp;action=history"/>
	<updated>2026-05-13T06:50:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Git_-_Under_the_Bonnet&amp;diff=27297&amp;oldid=prev</id>
		<title>116.213.116.68 at 11:17, 27 July 2015</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Git_-_Under_the_Bonnet&amp;diff=27297&amp;oldid=prev"/>
		<updated>2015-07-27T11:17:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Git|060]]&lt;br /&gt;
&lt;br /&gt;
== GIT under the bonnet ==&lt;br /&gt;
* Object Database&lt;br /&gt;
* SHA1&lt;br /&gt;
* DAG (Directed Acyclical Graph)&lt;br /&gt;
* Index&lt;br /&gt;
&lt;br /&gt;
== Object Types ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;blob&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*store file data&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;tree&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*ties one or more &amp;quot;blob&amp;quot; objects into a directory structure&lt;br /&gt;
*a tree object can refer to other tree objects, thus creating a directory hierarchy&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;commit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*ties such directory hierarchies together into a directed acyclic graph (DAG) of revisions&lt;br /&gt;
*each commit contains the object name of exactly one tree (snapshot of the tree)&lt;br /&gt;
*a commit refers to &amp;quot;parent&amp;quot; commit objects that describe the history of how we arrived at that directory hierarchy&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;tag&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*symbolically identifies and can be used to sign other objects&lt;br /&gt;
*It contains&lt;br /&gt;
**object name (SHA1, e.g. 232A...)&lt;br /&gt;
**type of another object&lt;br /&gt;
**a symbolic name (e.g. version 1.0.1)&lt;br /&gt;
**optionally, a signature (PGP or GPG)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Directed Acyclic Graph (DAG) ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Git-dag.png|250px]]&lt;br /&gt;
|| &lt;br /&gt;
*Stored as a &amp;#039;&amp;#039;&amp;#039;linked list&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Uses SHA1 as references&lt;br /&gt;
*One root (object without parents)&lt;br /&gt;
*Multiple parents allowed&lt;br /&gt;
**merge (2 parents)&lt;br /&gt;
**octopus merge (3 or more)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DAG and gitk&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Git-gitk.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;DAG and Git objects&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Git-dag-git-o.png|350px]]&lt;/div&gt;</summary>
		<author><name>116.213.116.68</name></author>
	</entry>
</feed>