---
title: Git & Version Control
description: Git is a distributed version control system used to track changes in source code during software development. You will understand how to manage code repositories, collaborate with other developers, resolve merge conflicts, and track project history.
category: programming-tech
subcategory: devops
difficulty: beginner, intermediate, advanced
url: /subject/git-version-control
---

# Git & Version Control

Git is a distributed version control system used to track changes in source code during software development. You will understand how to manage code repositories, collaborate with other developers, resolve merge conflicts, and track project history.

## Available Resources

1 Courses • 3 Websites

## Websites

### 1. Oh Shit, Git!?!

**Author:** Katie Sylor-Miller

One-page reference of recovery recipes for common Git mistakes: undoing commits, amending the last commit, moving commits to another branch, finding lost work with reflog, and fixing a diff that shows nothing, each with the exact commands and a short explanation. Fills the practical gap the conceptual resources leave: what to type when something goes wrong.

**Difficulty:** Beginner | **Language:** English | **Price:** Free

**Link:** https://ohshitgit.com/

**Tags:** git, git-recovery, reflog, version-control

### 2. Git from the Bottom Up

**Author:** John Wiegley

Free short book explaining Git from its object model upward: blobs, trees, commits, branches as references, the index, rebasing versus merging, reset, and stashing, using plumbing commands to show what each operation changes in the repository. Goes deeper than Pro Git on the index, reset and rebase mechanics.

**Difficulty:** Advanced | **Language:** English | **Price:** Free

**Link:** https://jwiegley.github.io/git-from-the-bottom-up/

**Tags:** git-internals, git-object-model, rebase, git-index, version-control

### 3. Learn Git Branching

An interactive web-based tutorial that visualizes Git commands and their effects on the repository history. It's excellent for understanding branching, merging, and rebasing in a hands-on way.

**Difficulty:** Beginner | **Language:** English | **Price:** Free

**Link:** https://learngitbranching.js.org/

**Tags:** git, branching, rebasing, interactive-tutorial, version-control

## Youtubes

### 1. Git For Ages 4 And Up (linux.conf.au 2013)

**Author:** Michael Schwern

Conference talk that models a Git repository with Tinkertoys, building the commit graph by hand while running commands such as commit, branch, merge, rebase, reset and push, so viewers see each command as an operation on the graph. Video learners get the commit-graph mental model concretely.

**Difficulty:** Beginner | **Language:** English | **Price:** Free

**Link:** https://www.youtube.com/watch?v=1ffBJ4sVUb4

**Tags:** git, commit-graph, branching, rebase, version-control

## Courses

### 1. Version Control (Git) — The Missing Semester of Your CS Education

**Author:** Anish Athalye, Jon Gjengset, Jose Javier Gonzalez Ortiz

Best single-hour explanation of why Git commands behave as they do; the data-model-first approach prevents the cargo-cult usage that command-list tutorials produce. MIT lecture with notes and video that teaches Git bottom-up: the snapshot data model of blobs, trees and commits, the object store and references, then maps everyday commands, branching, merging and remotes onto that model. Includes exercises.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://missing.csail.mit.edu/2020/version-control/

**Tags:** git, git-data-model, version-control, branching-and-merging

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/git-version-control