Skip main navigation

An introduction to the Git graph

In this short article, Dr Fardeen Mackenzie introduces a key concept for the course: the Git commit graph.
© The University of Manchester

One of the most important benefits Git provides is the ability to describe and visualise the history of changes in a project.

Understanding how to interpret this information is key both to understanding the current state of the project and also in grasping how Git and its various commands work.

Imagine you have joined a new team and you have been supplied with a current copy of the codebase. You will need to orientate yourself with the state of the project. This is part of the “onboarding” process that is common for software developers joining a new team. One of the ways which Git can facilitate onboarding is by helping you understand the project and its history.

A key tool to achieve this is the Git graph view.

Examine the following simple graph and investigate what it tells us about this project.

Diagram of a Git graph showing a simple vertical graph with three branches

If this is your first time seeing a Git graph it may seem a little overwhelming at first but don’t worry, the entire graph is made of just a few key elements.

On the left-hand side of the graph, you can see that it is constructed from a series of connected nodes. Each node is referred to as a “commit”. A commit can be thought of as a snapshot of the entire project at a point in time. It is possible to explore the graph, selecting any commit and viewing the state of the project at that point in time.

Next to each node, you can see three important pieces of information. The first is a string of characters that is used to uniquely identify that particular commit. You will learn more about these identifiers later in the course. After the identifier comes the commit message. When you make a commit (that is, save a snapshot of the project) you can enter a message that describes the changes you have made. It is common for the first commit in a project to be made before any code is written. Finally, you can see who authored the changes and made the commit.

A commit line with all the elements annotated

This particular graph is intended to be read vertically, bottom-to-top. The commit at the bottom of the graph is the “earliest” commit in the project’s history. The first commit is connected by a line to another commit with the message “Add log-in screen”. This suggests the changes made between the first commit and the second were intended to add a login process. These commits are connected because the “Add log-in screen” commit represents changes which are based directly on the “Initial commit” version of the project.

Whether this was a sensible way to start the development of this project is debatable, but at least you know how the codebase began. You may even be able to infer something about the company culture or level of experience within the team based on the development history.

It should be noted that other ways of drawing Git graphs are sometimes used, such as a horizontal layout, illustrated below.

Diagram of a Git graph showing a simple horizontal graph with three branches

We usually read horizontal Git graphs from left-to-right, so the earliest commit here is the one on the left.

© The University of Manchester
This article is from the free online

Collaborative Coding with Git

Created by
FutureLearn - Learning For Life

Our purpose is to transform access to education.

We offer a diverse selection of courses from leading universities and cultural institutions from around the world. These are delivered one step at a time, and are accessible on mobile, tablet and desktop, so you can fit learning around your life.

We believe learning should be an enjoyable, social experience, so our courses offer the opportunity to discuss what you’re learning with others as you go, helping you make fresh discoveries and form new ideas.
You can unlock new opportunities with unlimited access to hundreds of online short courses for a year by subscribing to our Unlimited package. Build your knowledge with top universities and organisations.

Learn more about how FutureLearn is transforming access to education