// learn
Learn Git & GitHub,
at your own pace.
Everything we teach in our sessions, in one place — plus the best free material on the internet. Start at the top; skip what you already know.
From our sessions
Missed one, or want to go over it again? The slides, recordings and code from every session land here.
Nothing here yet: the first session's slides and recording appear after it happens. First up: Learn GitHub & Make Your First Contribution, 12 Oct 2026.
Free resources worth your time
Start here
- GitHub SkillsGitHubShort interactive courses that run inside a real repository — the best first stop.
- First ContributionsOpen sourceMake your very first pull request, step by step, on a project built for practice.
- Learn Git BranchingPeter CottleA visual, game-like way to understand branches, merges and rebases.
Next
- GitHub DocsGitHubThe official reference. Search it whenever you're stuck.
- Pro Git (free book)Scott Chacon & Ben StraubThe standard Git book — free online. Chapters 1–3 cover almost everything you'll need.
- GitHub Student Developer PackGitHub EducationFree tools for students — Copilot, hosting, domains and more. Verify with your college email.
Git cheat sheet
The commands you'll use every day. Search, then press the copy button.

30 commands shown
Start
Set yourself up, begin a project.
git config --global user.name "Your Name"Tell Git who you are (once per computer)
git config --global user.email "you@example.com"Use the same email as your GitHub account
git initTurn the current folder into a Git repository
git clone <url>Download a repository from GitHub
Save
Record your work as commits.
git statusSee what changed and what's staged
git add <file>Stage a file for the next commit
git add .Stage everything that changed
git commit -m "message"Save the staged changes with a message
git log --onelineShow the history, one line per commit
git diffSee exactly what you changed
Branch
Try ideas without breaking what works.
git branchList your branches
git switch -c <name>Create a branch and move onto it
git switch <name>Move to another branch
git merge <name>Bring another branch's work into this one
git branch -d <name>Delete a branch you've finished with
Share
Send your work to GitHub, get others' work.
git remote -vShow where your repository is online
git push origin <branch>Upload your commits
git pullDownload and merge the latest changes
git fetchDownload changes without merging them yet
Undo
Everyone makes mistakes — Git can undo most.
git restore <file>Throw away changes to a file (not staged)
git restore --staged <file>Unstage a file, keep your changes
git commit --amendFix the last commit's message or contents
git revert <commit>Undo a commit by adding a new one (safe for shared work)
git stashPark unfinished work, get a clean folder
git stash popBring the parked work back
Collaborate
Working with other people's projects.
git remote add upstream <url>Link the original project you forked
git fetch upstreamGet the original project's latest changes
git rebase upstream/mainReplay your work on top of the latest original
gh pr createOpen a pull request (GitHub CLI)
gh pr checkout <number>Try out someone else's pull request
Ready to try it for real? Our workshops start from zero, and the contribute page shows beginner-friendly issues you can fix today.
Join the club