Learning path

Full curriculum

Full curriculum

Arrows go from each prerequisite to the units that depend on it. Hover or focus a unit to highlight its path.

Unit content

Git

Git is a distributed version-control system. Every ordinary Git repository can contain the project's complete commit history locally, so core version-control work does not require a network connection.

Working tree, staging area and commits

Git distinguishes three important states:

working tree → staging area → commit history

Edited files first exist in the working tree. git add selects content for the staging area, and git commit records the staged snapshot in history.

Commands such as git status, git diff and git log reveal these states and their differences.

Commits

Each commit identifies a project snapshot together with metadata and parent commit relationships. Commits form a history rather than a sequence of independently copied directories.

Branches and merging

A branch is a movable name pointing into the commit graph. Creating a branch lets new commits diverge from another line of work.

A merge combines histories. When Git cannot reconcile competing edits automatically, it marks a conflict and the user chooses the desired content before completing the merge.

Remote repositories

Git can also exchange commits and branch information with other repositories using operations such as fetch, pull and push.

Remote hosting enables collaboration and backup, but it extends the local repository model; it is not a prerequisite for understanding commits, branches or merges.