Tool School: GitHub 101 (GitHub is the New Google Drive)
Authors: Hannah Stulberg and Sidwyn Koh | Published: 2026-02-27
Everything needed to start using GitHub – no coding required. Applies to any AI coding tool (Claude Code, Cursor, Antigravity, Codex).
Core Metaphor: GitHub is the New Google Drive
| GitHub | Google Drive Equivalent |
|---|---|
| Repository | Shared folder |
| Commit | Save |
| Branch | Your copy |
| Main | The original |
| Push/Pull | Sync |
| Pull Request | “Review my edits” |
Setup Checklist
- GitHub account – github.com/signup
- Git installed –
xcode-select --install(Mac) or Git for Windows - Git configured – set name and email matching your GitHub account
- SSH keys – “keycard” metaphor. Key pair: private stays local, public goes to GitHub. Generate with
ssh-keygen -t ed25519 - GitHub CLI (gh) – interact with GitHub from terminal. Install from cli.github.com, auth with
gh auth login - GitHub MCP (optional) – gives Claude Code direct GitHub API access
The Daily Workflow (6 Steps)
- Get to your branch – pull latest main + create new branch, or switch to existing
- Make your edits
- Commit – save a snapshot with descriptive message. Commit early, commit often
- Push – upload to GitHub. Until you push, work only exists locally
- Open a pull request – “here are my changes, please review”
- Merge – combine into the official version
Key Concepts
Branches
- Your own parallel copy of the project
- Main = trusted official version. Never edit it directly
- Name descriptively with lowercase and hyphens
Pulling (Two Scenarios)
- Someone pushed to your branch – pull to sync
- Main moved forward – pull main into your branch via merge (safe) or rebase (clean history, only when solo)
Stashing
git stash/git stash pop– temporarily set aside uncommitted changes when switching branches
Commits
- Two parts: review changes (git status, diff view), then save
- Messages: short, specific. Each commit = one coherent change
Pull Requests
- Creating a PR = “here are my changes, please review”
- Claude Code can write the PR title and description
- Add reviewers who know the area. Be specific, be kind in reviews
Merging
- Squash and merge (recommended) – combines all commits into one clean commit
- After merging, delete the branch
Merge Conflicts
- When two people change the same lines. Not a bug, not your fault
- Claude Code can resolve them
- Prevention: pull main into your branch regularly
Common Errors
| Error | Cause | Fix |
|---|---|---|
| “Your branch is behind” | Local copy out of date | git pull |
| “Merge conflict” | Same lines changed by two people | Resolve manually or with Claude |
| “HEAD detached” | Checked out a commit, not a branch | git checkout main |
| “Permission denied (publickey)” | SSH key issue | Revisit SSH setup |
| Nested repo | Cloned inside another repo | Move repos side-by-side |
Important Rules
- Don’t put repos inside cloud storage sync folders (conflicts with Git internals)
- Don’t clone a repo inside another repo (nested repos cause tracking conflicts)
- Keep repos side-by-side in a single folder like
~/projects - If you commit an
.envfile, those secrets are in commit history forever