learn.colinkim.dev

Introduction

Start with the big picture: what Git and GitHub are, why version control matters, and how the pieces fit together.

Git and GitHub show up together so often that they can seem like the same thing.

They are not.

Git is a version control system.

GitHub is a hosting and collaboration platform built around Git repositories.

Start with version control

Version control records changes to files over time.

That matters because software projects change constantly:

  • new files are added
  • existing files are edited
  • bugs are fixed
  • experiments are abandoned
  • multiple people work on the same codebase

Without version control, it becomes difficult to answer practical questions:

  • What changed?
  • Who changed it?
  • Which version worked before the bug appeared?
  • How can two people work on different tasks without overwriting each other?

Git exists to solve those problems.

Git and GitHub are different layers

Git handles the local history of a repository.

It can:

  • track changes in a project
  • group those changes into commits
  • create branches for separate lines of work
  • merge completed work back together

GitHub adds a shared remote layer.

It can:

  • host Git repositories online
  • let people clone and push repositories
  • show pull requests, code review, and issue tracking in a web UI
  • run automated checks through GitHub Actions

How this course is organized

This material starts with Git, then moves to GitHub. GitHub only makes sense once the underlying Git ideas are clear.

The first part covers:

  • repositories
  • commits
  • staged changes
  • branches
  • merging

The second part covers:

  • remotes
  • cloning and pushing
  • pull requests
  • code review
  • issues
  • Actions

The main idea

Git tracks and organizes project history. GitHub helps people share, review, and manage that work together. Keep those two layers separate in your head and the rest will make more sense.

Progress

Quick checks

No quick checks in this lesson.

Mark lesson manually or answer quick checks to track progress.