Git Course

Git is the version control system behind almost every software project: it records the history of your work, lets you undo mistakes, experiment safely on branches, and collaborate with other people through services like GitHub. This course takes you from your first commit to rebasing, pull requests, hooks and release tagging — finishing with a complete two-person team project.

What you'll learn

The course has 52 lessons in eight parts:

  • Getting Started — what version control is, installing and configuring Git, terminal basics, and how Git stores your work.
  • The Everyday Workflow — status, staging, committing, good commit messages, viewing history and diffs, and ignoring files.
  • Undoing Things — restoring files, amending commits, reset, revert, recovering lost work with the reflog, and cleaning up.
  • Branching & Merging — branches, merging, resolving conflicts, rebasing, interactive rebase, cherry-pick and stash.
  • Remotes & Collaboration — GitHub, authentication, push, clone, fetch and pull, pull requests, forks and team workflows.
  • History & Releases — tags and versioning, searching code and history, and finding bugs with bisect.
  • Advanced Git — internals, configuration, hooks, worktrees, submodules, large files, signed commits and CI with GitHub Actions.
  • Wrapping Up — troubleshooting, best practices and a full team project.

Every command in the course was run with a real copy of Git, and the output shown is exactly what it printed — including commit hashes, which come out the same each run because the examples use fixed dates. On your own computer the commands behave identically; only your hashes and dates will differ.

No previous experience with Git or the command line is needed.

Practice

  • Cheat Sheet — the most useful commands on one page.
  • Exercises — fill-in-the-blank commands and hands-on challenges with solutions.
  • Quiz — test your understanding across the whole course.
  • Syllabus & Study Plan — learning outcomes and a week-by-week schedule.

Lessons

Getting Started

  1. Introduction to Git
  2. Installing Git
  3. Configuring Git
  4. Terminal Essentials
  5. Creating a Repository
  6. How Git Works

The Everyday Workflow

  1. Checking Status
  2. Staging Changes
  3. Making Commits
  4. Writing Good Commit Messages
  5. Viewing History
  6. Comparing Changes
  7. Inspecting Commits
  8. Ignoring Files
  9. Moving and Deleting Files

Undoing Things

  1. Discarding Changes
  2. Amending Commits
  3. Undoing Commits with reset
  4. Reverting Commits
  5. Recovering Lost Work
  6. Removing Untracked Files

Branching & Merging

  1. Branches
  2. Switching Branches
  3. Merging
  4. Resolving Merge Conflicts
  5. Rebasing
  6. Rewriting History with Interactive Rebase
  7. Cherry-Picking Commits
  8. Stashing Changes

Remotes & Collaboration

  1. Remote Repositories
  2. Authentication: HTTPS and SSH
  3. Pushing Changes
  4. Cloning a Repository
  5. Fetching and Pulling
  6. Remote Branches and Tracking
  7. Pull Requests and Code Review
  8. Forks and Contributing to Open Source
  9. Branching Workflows for Teams

History & Releases

  1. Tags and Releases
  2. Searching Code and History
  3. Finding Bugs with bisect

Advanced Git

  1. Inside the .git Folder
  2. Aliases and Useful Configuration
  3. Git Hooks
  4. Working on Several Branches with Worktrees
  5. Submodules
  6. Large Files and Git LFS
  7. Signing Commits
  8. Automating Checks with GitHub Actions

Wrapping Up

  1. Troubleshooting Common Problems
  2. Git Best Practices
  3. Project: A Team Workflow from Start to Finish

Practice

  1. Git Cheat Sheet
  2. Git Exercises
  3. Git Quiz
  4. Syllabus & Study Plan
Where to start: begin with Introduction and install Git in lesson 2 so you can type along. Afterwards, automate your terminal with Bash, or put your new skills to work on a Python or JavaScript project.