You turn any folder into a Git repository, starting from scratch.
clone starts from a project that already exists; init creates one from nothing, on your computer.
Not a dev? Doesn't matter. Every command has an animated card: you watch what moves and get it instantly — Pull Request included, the one that trips up even real programmers.
The loop you do every day: from the code on your machine to GitHub and back.
You turn any folder into a Git repository, starting from scratch.
clone starts from a project that already exists; init creates one from nothing, on your computer.
You download the entire copy of a project from GitHub to your computer. It's the starting point of everything.
You choose which changes go into the next save, moving them into the staging area.
Staging ≠ saving. You're only preparing the list of what will be included in the commit.
You save the selected changes into the project's history, with a message explaining what you did.
The commit stays on your computer. Until you push, nobody else sees it.
You push your local commits to GitHub: now the work is online, safe, and visible to others.
You pull down the changes others have put on GitHub and merge them into your local work.
Heads up: git pull ≠ Pull Request. Same name, different concepts (the PR is further down).
You download what's new on GitHub but do NOT merge it into your work: you set it aside to look at first.
pull = fetch + merge. fetch is the cautious version: download first, decide after.
Harmless commands that tell you where you stand. The ones you type constantly so you don't get lost.
It tells you where you stand: which files you've changed, what's already staged, what's missing. You'll use it constantly.
It's completely harmless: it changes nothing. When in doubt, git status.
Shows the history of commits: who did what and when. It's the project's memory.
Parallel lines of work for experimenting without breaking the main branch.
You create a parallel line of work starting from where you are: you experiment without touching main.
A branch costs nothing. It's just a label pointing to a commit: you can have as many as you want, in parallel.
You move from one branch to another. HEAD marks "where you are now" — where the next commits will land.
It used to be git checkout; today git switch does the same thing more clearly.
You merge the work of one branch into another: the two lines become one again.
If the same lines changed on both branches, git asks you how to combine them: that's a merge conflict.
How to propose changes to a project that isn't yours, without write access.
You create your own copy of someone else's project, on your GitHub account, where you can do whatever you want.
It's not a git command. It's a button on the GitHub website: exactly what you need when the project isn't yours.
You give names to remote repositories: "origin" is your copy, "upstream" is the original project.
You push to origin, pull updates from upstream.
From your branch on GitHub you open a proposed change to the original project. The maintainer reviews it and, if they like it, merges it.
The trick: it looks like a push, but it's the opposite — you ask, you don't write. It's called a pull request because it's the maintainer who "pulls in" your work.
Keep exploring
Guides, courses and tools picked for you, starting from this page.
Search Console data inside your terminal.
Deploy on Vercel with no jargon: turn the project sitting on GitHub into a public link you can send anyone, then add your own domain on top.
The sheet to bring to the call
A vague brief becomes a navigable app.
Built a project with Claude Code or Codex? Learn to put it on GitHub, roll back changes when things break, and bring other people in to help.
AI skills for designers