What GitHub Is (and What It Is Not)
Most people meet GitHub before they meet Git, which is roughly like learning about libraries before learning to read. This page puts them back in order.
GitHub is a company that stores copies of Git repositories on the internet and builds a website around them. That is it. It is not a different version of Git, not a replacement for it, and not required to use it.
The storage half
A copy of your repository lives on GitHub's servers. Your machine can send commits to it and fetch commits from it, and both copies hold the same history.
That copy is called a remote: a repository somewhere else that yours knows about. The word is worth learning properly, because it is what the next three topics are all about. A remote is not a backup service and not a master copy — it is another repository, which happens to be somewhere you can reach.
The website half
Everything else GitHub offers — issues, pull requests, code review, project boards, releases — is GitHub's own invention, built on top of the storage.
Git has no idea what a pull request is. That is not a criticism of either one; it is the reason those features have different names on different hosts, and the reason your Git knowledge transfers between them unchanged while your GitHub knowledge only mostly does.
Why anyone bothers
Three reasons, in order of how soon you will feel them.
A copy that survives your laptop. Chapter 1 was blunt about this: until now, Sandpiper's entire history has been one hard disk away from not existing.
A way for someone else to get the project. Theo cannot clone a folder on your desk.
And a place where a change can be discussed before it is accepted. That third one is what Chapter 8 is about, and it is the reason teams pick a host rather than a bare server somewhere.
The alternatives, once
GitLab, Bitbucket, Codeberg, and a self-hosted server in a company's own data centre all do the same job, and all speak exactly the same Git. Your first employer may well use one of them.
What transfers completely is everything in Chapters 1 to 6, plus push, pull and clone. What does not transfer is where the buttons are. This book describes GitHub's features by what they do rather than by where they sit on the page, because button positions are the fastest-rotting sentences in any course like this one.
What "public" means
A repository on GitHub is either private, visible only to you and people you invite, or public, readable by anyone at all.
Public means the whole thing: every file, every commit, every message, and your name and email on all of them. Not just the current state — the history, including anything you committed and later removed. Chapter 5 made that point about secrets; Chapter 9 comes back to it properly, before Sandpiper goes public.
- "I need GitHub to use Git." Six chapters just happened without it. Plenty of real repositories never leave a machine, and plenty of companies use a host that is not GitHub.
- "GitHub owns the code I put there." You keep your rights. You are using storage and a website. What other people may legally do with your code is a separate decision, and it is Chapter 9.
- "Pull requests are a Git feature." They are GitHub's. Git knows nothing about them, which is why the same idea is called a merge request on GitLab.
- "A private repository keeps a committed password safe." Private today is not private forever, and the credential is now stored in a place it was never meant to be. Chapter 5's advice stands: rotate it.
- Separating Git from GitHub is what lets you walk into a job that uses GitLab and lose nothing but the button positions.
- "A remote is another repository" is the model behind push, pull and every sync problem in this chapter. Treating it as a magic server makes all of them mysterious.
- Knowing that public exposes the whole history is what makes Chapter 9's pre-publication check a habit rather than a surprise.
Knowledge Check
Which part of GitHub is Git, and which part is not?
- The stored copy of the repository is Git; issues and pull requests are not
- All of it is Git, since GitHub is the official home of the Git project itself
- None of it is Git, because GitHub stores projects in its own format entirely
- The website is Git and the storage is GitHub's own proprietary addition
What is a remote?
- Another repository, somewhere you can reach, that yours knows about
- A server that holds the authoritative version every copy must agree with
- A backup service that keeps snapshots of your project at regular intervals
- A folder inside
.gitwhere commits are stored before they are sent
Your first job uses GitLab instead of GitHub. What transfers?
- Everything about Git, plus push, pull and clone, with only the buttons being different
- Nothing, because each host stores repositories in a format of its own
- Only the basics from the first two chapters, since branching differs per host
- Everything, because GitLab is a rebranded version of the same underlying service
What does making a repository public expose?
- Every file and every commit, including things committed and later removed
- Only the files as they exist now, since past versions stay private by default
- Only the code, while commit messages and author details stay hidden
- Only what you choose to publish, since files can be marked private individually
You got correct