| |

GitHub 01 ๐ŸŒ What is GitHub and Git vs GitHub

โฑ๏ธ Estimated read: 10 min | |

Git is a version control system. GitHub is a hosting platform built on top of Git. The distinction sounds trivial until you try to use one without the other: Git works entirely on your local machine, and GitHub does nothing without a Git repository to host. The two are related the way a document and a cloud drive are relatedโ€”the document exists without the drive, but the drive is what makes sharing and collaboration practical.

This chapter covers the foundational distinction between Git and GitHub, the purpose each serves, and the reason the confusion between them persists. It establishes the mental model for the rest of the series: Git is the tool that tracks changes, and GitHub is the platform that hosts the tracked changes and adds collaboration features around them.


Key point: Git is the version control system that runs on your computer. GitHub is a website that hosts Git repositories and adds collaboration tools. You can use Git without GitHub. You cannot use GitHub without Git.


Why the distinction matters

The naming confusion. The names are similar, and the platforms that teach version control often present them together. The result is that many beginners assume GitHub is Git, or that Git requires GitHub. Neither is true. Git was created by Linus Torvalds in 2005 for Linux kernel development, and it was designed to work without any central server at all . GitHub was founded in 2008 as a hosting service for Git repositories, and it added featuresโ€”pull requests, issues, actionsโ€”that Git itself does not provide .

The local versus remote distinction. Git is a distributed version control system. When you clone a repository, you get a complete copy of the project’s history, not just the latest snapshot. Every commit, every branch, and every tag is stored on your local disk. Most Git operationsโ€”committing, branching, viewing history, diffingโ€”work entirely offline . GitHub is a remote host. It stores a copy of the repository in the cloud, and it is the place where collaborators push their local changes and pull each other’s work.

The feature distinction. Git provides version control. GitHub provides version control plus planning tools, code review, CI/CD, package hosting, security scanning, and project management . A repository on GitHub is a Git repository with a web interface, a permission system, an issue tracker, and a set of automation features built around it. The Git part is the foundation; the GitHub part is the platform.

The alternative distinction. GitHub is not the only Git host. GitLab, Bitbucket, Azure DevOps, and SourceForge all host Git repositories . The Git commands you learn for GitHub work on any of them, because the underlying version control system is the same. The differences are in the platform features, the pricing, and the user interface.


a. What Git is

Git is a distributed version control system. It tracks changes to files, records a history of those changes, and allows multiple people to work on the same project without overwriting each other’s work.

The core mechanism is the snapshot. Every time you commit, Git takes a picture of what all your files look like at that moment and stores a reference to that snapshot. If a file has not changed since the previous commit, Git does not store the file again; it stores a link to the previous identical file . This is different from older version control systems that store a base version and a list of changes. Git’s model is more like a miniature filesystem with powerful tools built on top of it.

The distribution is the other defining feature. When you clone a repository, you get the full history, not just the latest version. If the server dies, any clone can be used to restore it . This is why Git operations are fast: browsing history, diffing versions, and committing changes all happen locally, without network latency .

Git is free and open source. It runs on Linux, macOS, and Windows. It is operated primarily through the command line, though graphical interfaces exist.


b. What GitHub is

GitHub is a platform that hosts Git repositories in the cloud. It provides the remote storage that a distributed version control system needs for collaboration, and it adds a layer of tools that Git does not include.

The platform covers the software development lifecycle. GitHub’s documentation describes the stages as plan, create, review, test, deploy, and operate . Planning is handled by issues and project boards. Creation is the repository itself. Review is the pull request. Testing is GitHub Actions. Deployment and operation are the workflows and security features that run after the code is merged.

The collaboration features are what distinguish GitHub from a bare Git server. A pull request is a proposal to merge changes from one branch into another, with a discussion thread, a diff view, and a review workflow. An issue is a trackable task, bug report, or feature request. Actions is a CI/CD system that runs workflows in response to repository events. None of these are part of Git. They are GitHub’s additions.

GitHub is free for public and private repositories, with paid tiers for organizations that need advanced features. It is the largest Git host, and it is where most open-source software is developed.


Complete Example Session

# ============================================
# PART 1: GIT IS LOCAL
# ============================================
# A Git repository can exist entirely on your machine.

mkdir my-project
cd my-project
git init
# Initialized empty Git repository in /home/user/my-project/.git/

# ============================================
# PART 2: THE FIRST COMMIT
# ============================================
# Git records a snapshot of the files.

echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"
# [main (root-commit) abc1234] Initial commit
#  1 file changed, 1 insertion(+)

# ============================================
# PART 3: THE HISTORY IS LOCAL
# ============================================
# Git can show the history without a network.

git log --oneline
# abc1234 Initial commit

# ============================================
# PART 4: GITHUB IS REMOTE
# ============================================
# GitHub stores a copy of the repository.
# The remote is added with a URL.

git remote add origin https://github.com/username/my-project.git
git push -u origin main

# ============================================
# PART 5: THE DISTINCTION
# ============================================
# Git: the tool on your machine.
# GitHub: the host at the URL.
# The push transfers commits from local to remote.

# ============================================
# PART 6: THE PLATFORM FEATURES
# ============================================
# After the push, GitHub adds:
# - A web view of the files
# - Issues and pull requests
# - Actions workflows
# - Security scanning
# - Collaborator permissions

# ============================================
# PART 7: GIT WORKS WITHOUT GITHUB
# ============================================
# A local repository with no remote:
git remote -v
# (empty output)

# All Git commands still work:
git log
git branch
git checkout -b feature

# ============================================
# PART 8: GITHUB DOES NOT WORK WITHOUT GIT
# ============================================
# A GitHub repository is a Git repository.
# Without Git, there is nothing to host.

# ============================================
# PART 9: ALTERNATIVE HOSTS
# ============================================
# The same Git repository can be pushed to:
# - GitLab: git remote add origin https://gitlab.com/...
# - Bitbucket: git remote add origin https://bitbucket.org/...
# - A self-hosted server

# ============================================
# PART 10: THE FULL PICTURE
# ============================================
# Git is the version control system.
# GitHub is the hosting platform.
# The commands are Git.
# The collaboration is GitHub.

echo "Git vs GitHub: established."

The ten parts demonstrate the distinction in practice: a local repository that works without GitHub, the remote that connects it to GitHub, and the platform features that GitHub adds on top.


Quick Reference

Git vs GitHub

AspectGitGitHub
What it isVersion control systemHosting platform
Runs whereLocal machineCloud
Created2005 (Linus Torvalds)2008
Requires networkNo (most operations)Yes
ProvidesCommits, branches, historyRepos, PRs, Issues, Actions
FreeYes, open sourceYes, with paid tiers
Command lineYes (git)Via gh CLI or web

What Git Does

FeatureDescription
SnapshotsRecords file state at each commit
HistoryFull local copy of every commit
BranchingLightweight pointers to commits
MergingCombines branches
DistributedEvery clone is a full backup

What GitHub Adds

FeatureDescription
Remote hostingCloud storage for Git repos
Pull requestsCode review and merge workflow
IssuesTask and bug tracking
ActionsCI/CD automation
ProjectsKanban-style planning
SecurityDependabot, secret scanning

Best Practices

โœ… Do This:

# Learn Git commands first.
git init
git add .
git commit -m "message"
git push origin main                                                 // โœ…
# Treat GitHub as a remote.
git remote add origin https://github.com/user/repo.git               // โœ…
# Use Git offline when needed.
# Commits, branches, and history work without a network.              // โœ…

โŒ Don’t Do This:

# Don't say "I'm learning GitHub" when you mean Git.
# The commands are Git. The platform is GitHub.                       // โŒ
# Don't assume Git requires GitHub.
# Git works entirely offline.                                         // โŒ
# Don't assume GitHub is the only Git host.
# GitLab, Bitbucket, and others exist.                                // โŒ

Common Pitfalls

PitfallWhy It HappensFix
“GitHub is Git”The names and platforms are presented togetherGit is the tool; GitHub is the host
“I need GitHub to use Git”Most tutorials use GitHubGit works locally without any host
“My code is on GitHub”The local repository is the source of truthGitHub is a remote copy; the local is primary
“Git commands don’t work on GitLab”The UI differs, the Git commands are the sameLearn Git, not the host’s UI

Real-World Examples

1. Local Git Repository

git init && git add . && git commit -m "init"

2. Add GitHub Remote

git remote add origin https://github.com/user/repo.git

3. Push to GitHub

git push -u origin main

4. Clone from GitHub

git clone https://github.com/user/repo.git

5. Check Remotes

git remote -v

6. Git Without Remote

git log --oneline

7. GitHub Web View

# Open https://github.com/user/repo in a browser

8. Alternative Host

git remote add gitlab https://gitlab.com/user/repo.git

9. The Distinction

git commit  # Git
git push    # Git + GitHub (remote)

10. The Platform

gh repo create  # GitHub CLI, not Git

Visual

The Relationship

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  YOUR MACHINE                                           โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  GIT                                              โ”‚  โ”‚
โ”‚  โ”‚  version control system                           โ”‚  โ”‚
โ”‚  โ”‚  commits, branches, history                       โ”‚  โ”‚
โ”‚  โ”‚  works offline                                    โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚         โ”‚                                               โ”‚
โ”‚         โ”‚  git push / git pull                          โ”‚
โ”‚         โ–ผ                                               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  GITHUB                                           โ”‚  โ”‚
โ”‚  โ”‚  hosting platform                                 โ”‚  โ”‚
โ”‚  โ”‚  repos, PRs, issues, actions                      โ”‚  โ”‚
โ”‚  โ”‚  requires network                                 โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

The Workflow

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  1. Edit files locally                                  โ”‚
โ”‚         โ”‚                                               โ”‚
โ”‚         โ–ผ                                               โ”‚
โ”‚  2. git add + git commit (Git, local)                   โ”‚
โ”‚         โ”‚                                               โ”‚
โ”‚         โ–ผ                                               โ”‚
โ”‚  3. git push (Git โ†’ GitHub)                             โ”‚
โ”‚         โ”‚                                               โ”‚
โ”‚         โ–ผ                                               โ”‚
โ”‚  4. GitHub stores the copy, enables collaboration       โ”‚
โ”‚         โ”‚                                               โ”‚
โ”‚         โ–ผ                                               โ”‚
โ”‚  5. git pull (GitHub โ†’ Git, local)                      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

The Naming

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  git commit       โ†’ Git command                         โ”‚
โ”‚  git push         โ†’ Git command (talks to remote)       โ”‚
โ”‚  GitHub repo      โ†’ hosted Git repository               โ”‚
โ”‚  GitHub Actions   โ†’ platform feature, not Git           โ”‚
โ”‚  gh repo create   โ†’ GitHub CLI, not Git                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Summary

ItemValue
GitDistributed version control system
GitHubHosting platform for Git repositories
CreatedGit: 2005, GitHub: 2008
Git runsLocally, offline
GitHub runsCloud, network required
Git commandsgit init, git commit, git push
GitHub featuresPRs, Issues, Actions, Projects
Alternative hostsGitLab, Bitbucket, Azure DevOps

Key takeaways:

  • Git is the version control system. It tracks changes, records history, and runs on your local machine. Most operations work without a network .
  • GitHub is the hosting platform. It stores a copy of the Git repository in the cloud and adds collaboration tools that Git does not provide .
  • The commands are Git, the collaboration is GitHub. git commit is Git. A pull request is GitHub. The distinction matters when you switch hosts.
  • Git works without GitHub. A local repository with no remote is a valid Git repository. GitHub does nothing without a Git repository to host .
  • GitHub is not the only host. GitLab, Bitbucket, and Azure DevOps host Git repositories with different platform features .

Remember: The confusion between Git and GitHub is a naming problem, not a technical one. Git is the tool that runs on your machine and records the history. GitHub is the website that hosts a copy of that history and adds the tools for collaboration. Learn the Git commands first, because they work everywhere. The GitHub-specific featuresโ€”pull requests, Actions, Issuesโ€”are the platform layer, and they sit on top of the version control system, not inside it.


Was this helpful?


Stop using slow, ad-bloated tool sites! ๐Ÿคฎ

๐Ÿ”Ž Search “KandZ Tools” on Google to use many professional utilities for free.

KandZ.me is the ultimate minimalist hub for:
โœ… Finance (Mortgage, Interest, Inflation)
โœ… Tech (Base64, JSON, Dev Suite, IP)
โœ… Health (BMI, BMR, TDEE)
โœ… Productivity (Timer, Workspace, QR)

โšก๏ธ Fast & Private
๐Ÿ”’ No data leaves your device
๐Ÿ’Ž 100% Free

๐Ÿ”— Use it now: https://tools.kandz.me
๐Ÿ”– Bookmark itโ€”youโ€™ll need it later!