Skip to content
Log in

Git cheat sheet for product people

Git commands grouped by the job you need done, in plain words, with the risky ones clearly marked.

You don't need the terminal for our Git course. This page is for the moments it shows up anyway: an engineer's instruction, a local copy of the repository, a pull request you want to run.

New to Git as a PM? Git for product managers: read the repository, skip the command line

How to read the commands

Words in angle brackets are placeholders. Replace <branch>, <file>, <commit> or <text> with your own value and drop the brackets. A <commit> is a hash such as 3f9a2c1; a <tag> is a version such as v1.5.0.

Every command carries one of three labels:

  • Safe: only looksreads only; nothing changes in your folder or on GitHub.
  • Careful: changes thingschanges your folder, your branch or what others see, but can be undone.
  • Danger: can lose workcan delete work for good or rewrite history others rely on. Read the note first.
  • GitHub CLIa separate command-line tool from GitHub (gh), installed on its own.

Written for Git 2.23 or newer (git switch and git restore need it). Check yours with git --version.

63 commands

Get a copy and look around

Get the project onto your laptop and find your way around it before you touch anything.

  • git clone <url>

    Safe: only looks

    Download a full copy of a repository, history included.

    Creates a new folder with every file and every commit of the project. Nothing on GitHub changes, and nothing already on your laptop is touched. You only need it when you want to run or search the project locally.

    On GitHub

    To read the project you don't need a copy: browse the repository page. The address for git clone is under the green Code button.

  • git status

    Safe: only looks

    See which branch you are on and which files you have changed.

    The first command to run when you are unsure. It names your branch, lists edited, new and conflicting files, and says whether you are ahead of or behind GitHub (as of your last fetch). It often suggests the next command too.

  • git log --oneline --graph --all

    Safe: only looks

    Draw every branch and merge as a text picture.

    One commit per line, with lines on the left showing where branches split off and where they were merged back. Handy for seeing how busy a repository is before you ask where a change went. Press q to leave the list.

    On GitHub

    Insights → Network draws the same picture for the repository's branches.

  • git grep "<text>"

    Safe: only looks

    Find every file that contains a word or a phrase.

    Searches the files of your current branch and prints each matching line with its file name. Useful to find where a button label, a price or a feature flag lives. It only searches today's files, not deleted text.

    On GitHub

    Use the search field at the top of the repository page (press /) and keep the results to this repository.

  • git config --global user.name "<name>"

    Careful: changes things

    Set the name that appears on your commits.

    A one-time setup on a new laptop. Git writes this name into every commit you make from now on, in every repository on this computer.

    What can go wrong

    Commits you already made keep the old name; a typo shows up in the shared history until you run the command again with the right spelling.

  • git config --global user.email "<email>"

    Careful: changes things

    Set the email that links your commits to your GitHub account.

    GitHub matches this address to your account to show your avatar next to your commits. Use the address from your GitHub email settings; GitHub also offers a private noreply address for this.

    What can go wrong

    The address is stored in every commit you make, and anyone who can read the repository can see it.

See what changed

Recent commits, one commit up close, and what a branch adds compared with main.

  • git log --oneline -20

    Safe: only looks

    List the last 20 commits on your branch, one line each.

    Each line starts with the short commit hash and the commit message, newest first. It is the quickest answer to "what happened here lately?". Change 20 to any number you like.

    On GitHub

    On the repository page, click the commit count with the clock icon above the file list.

  • git log --since="2 weeks ago" --oneline

    Safe: only looks

    See every commit from the last two weeks.

    Filters the history by date, which is handy before a sprint review or a stakeholder update. Git understands phrases like "3 days ago" or a date like "2026-09-01".

    On GitHub

    Open the commits list and pick a date range in its date filter.

  • git show <commit>

    Safe: only looks

    Open one commit: its message, author, date and diff.

    Paste the hash from a Slack message or a pull request and you see exactly what that commit changed, removed lines with a minus and added lines with a plus.

    On GitHub

    Click any commit hash on GitHub to open its page with the same diff.

  • git diff

    Safe: only looks

    See the edits in your folder that you haven't staged yet.

    Shows, line by line, how your files differ from their last saved state. Run it before committing to check you changed only what you meant to. Once a file is staged with git add, its edits move to git diff --staged.

  • git diff origin/main...<branch>

    Safe: only looks

    See everything a branch changes compared with main.

    The three dots mean "since the branch split off from main", so you see only the branch's own work, just like a pull request's Files changed. Run git fetch first so origin/main is current.

    On GitHub

    Open the pull request and go to the Files changed tab.

  • git log --oneline origin/main..<branch>

    Safe: only looks

    List the commits a branch has that main doesn't.

    Two dots mean "in the branch, not yet in main". The number of lines is what GitHub calls "ahead". An empty list means everything on the branch is already in main.

    On GitHub

    The pull request's Commits tab, or the "ahead" count on the branches page.

Find who changed a line, and why

Trace a line or a sentence back to the commit that wrote it; the commit leads to the pull request and the reason.

  • git log -p -- <file>

    Safe: only looks

    Read the full history of one file, with each change.

    Lists every commit that touched the file, newest first, each with its diff. Good for questions like "how did the pricing copy evolve?". Press q to leave.

    On GitHub

    Open the file and click History in its top right corner.

  • git blame <file>

    Safe: only looks

    See who last changed each line of a file, and in which commit.

    Prints the file with the commit, author and date of the last change next to every line. It finds where a line came from, not someone to blame. If the last commit only reformatted the line, look one step further back in the history.

    On GitHub

    Open the file and switch the view from Code to Blame.

  • git blame -L <start>,<end> -- <file>

    Safe: only looks

    Find who changed a few specific lines of a file.

    The same as git blame, limited to a range of line numbers, for example -L 10,14. Take the numbers from the file view on GitHub. The commit hash in the first column leads to the pull request.

    On GitHub

    Open the file in the Blame view and scroll to those line numbers.

  • git log -S "<text>" --oneline

    Safe: only looks

    Find the commits that added or removed a piece of text.

    Searches the whole history for commits where the text appeared or disappeared. It is the tool for "this sentence used to be on the page, who took it out?", which blame can't answer because the line no longer exists.

Also useful here:git grep "<text>"

Work on a branch

List branches, move between them, start a new one and tidy up after a merge.

  • git branch

    Safe: only looks

    List the branches on your laptop; a star marks the one you're on.

    Only local branches: the ones you created or switched to. Branches that exist only on GitHub are not listed here; git branch -a shows those too.

    On GitHub

    The branch selector above the file list shows the branches on GitHub.

  • git branch -a

    Safe: only looks

    List every branch, including the ones only on GitHub.

    GitHub's branches appear as remotes/origin/<name>. The list is as fresh as your last git fetch, so fetch first if you are looking for a branch someone just pushed.

    On GitHub

    The Branches page (the branch count next to the branch selector) lists them with their last commit.

  • git switch <branch>

    Careful: changes things

    Move to another branch; your folder changes to match it.

    The files in your folder turn into that branch's version. If the branch exists only on GitHub, Git creates a local copy that follows it. Uncommitted edits come along when they don't clash with the other branch.

    What can go wrong

    If your uncommitted edits clash with the other branch, Git refuses to switch until you commit or stash them; nothing is lost, but the folder looks different after a switch.

    On GitHub

    Pick the branch in the branch selector above the file list.

  • git switch -c <branch>

    Careful: changes things

    Start a new branch from where you are and move to it.

    The new branch starts at your current commit, so switch to an up-to-date main first if the work should start from main. Name it the way your team does, for example content/delivery-copy.

    What can go wrong

    It starts from wherever you are: from an old or unrelated branch you carry its commits into your pull request.

    On GitHub

    Open the branch selector, type a new name and click Create branch … from main.

  • git branch -d <branch>

    Careful: changes things

    Delete a local branch that has already been merged.

    Tidies your laptop after a pull request is merged. Git refuses if the branch holds commits that are not merged anywhere, which makes this the careful way to delete. The branch on GitHub is not touched.

    What can go wrong

    After a squash merge Git often calls the branch unmerged even though the work is in main, because main holds a new commit, not the branch's own ones. That is when people reach for -D.

    On GitHub

    After a merge, the pull request page offers Delete branch (and Restore branch if you change your mind).

  • git branch -D <branch>

    Danger: can lose work

    Delete a local branch even if its work was never merged.

    The capital D skips the safety check of -d. Engineers use it for experiments they really want gone.

    What can go wrong

    Commits that were only on that branch disappear from view. For a few weeks git reflog on this laptop can still find them; after that they are lost.

    Safer: git branch -d <branch>

Save and share your change

Pick what goes into a commit, save it with a message and send it to GitHub for a pull request.

  • git add <file>

    Careful: changes things

    Mark a file's changes to go into the next commit.

    Git commits only what you have added ("staged"), so you choose what belongs together. After a merge conflict, git add on a fixed file tells Git that file is resolved.

    What can go wrong

    Staged files go into the next commit, secrets and stray files included; git restore --staged <file> takes a file back out.

    On GitHub

    No separate step: the GitHub web editor includes your edit in the commit automatically.

  • git commit -m "<text>"

    Careful: changes things

    Save the staged changes as a commit with a message.

    Creates one step in the history of your branch, on your laptop only. Write the message for the person reading history in a year: what changed and why, for example "Fix delivery price on the FAQ page".

    What can go wrong

    The commit exists only on your laptop until you push; before that you can still fix it with git commit --amend.

    On GitHub

    In the web editor, click Commit changes…, write the message and choose the branch.

  • git commit --amend

    Careful: changes things

    Fix your last commit: its message or a forgotten file.

    Replaces the last commit with a new one that includes anything you have staged since. Git opens a text editor with the old message to edit; add -m "<text>" to set the message directly.

    What can go wrong

    It rewrites the commit: fine before you push, but after a push your branch no longer matches GitHub and would need a force push.

  • git push -u origin <branch>

    Careful: changes things

    Send a new branch to GitHub for the first time.

    Creates the branch on GitHub with your commits and links the two, so later a plain git push is enough. GitHub then offers a link to open a pull request.

    What can go wrong

    Your commits become visible to everyone with access to the repository, and automated checks may start running on them.

    On GitHub

    When you commit in the web editor, choose "Create a new branch for this commit and start a pull request".

  • git push

    Careful: changes things

    Send your new commits on this branch to GitHub.

    Adds your commits to the same branch on GitHub, where the pull request picks them up. If someone else pushed first, Git rejects the push and asks you to bring their commits in before trying again.

    What can go wrong

    Once pushed, others may build on your commits; undo them with git revert, not by rewriting history.

Also useful here:git statusgit diff

Sync with main

Bring in what others merged while you worked. Merging is the calm option; rewriting history is for people who know why they need it.

  • git fetch origin

    Safe: only looks

    Download what's new on GitHub without touching your files.

    Updates your laptop's picture of GitHub (origin/main and the other origin/… branches). Your own branches and files stay exactly as they were, so it is always safe to run before you compare or check anything.

    On GitHub

    Not needed: GitHub always shows its latest state.

  • git pull

    Careful: changes things

    Bring the latest commits of your branch from GitHub into your folder.

    A fetch followed by a merge (or a rebase, if your team set it up that way) of the same branch from GitHub. On a branch only you use, it simply brings you up to date.

    What can go wrong

    Your files change, and if you and someone else edited the same lines, the pull stops with a merge conflict you have to resolve or abort.

    On GitHub

    No direct equivalent: GitHub always shows the latest version. The closest thing is Update branch on a pull request, which brings main into the pull request's branch.

  • git merge origin/main

    Careful: changes things

    Bring the latest main into your branch with a merge commit.

    Adds what others merged into main while you worked, without changing any of your existing commits. Run git fetch origin first. Afterwards a normal git push is enough.

    What can go wrong

    It may stop with a merge conflict; git merge --abort takes you back to where you started.

    On GitHub

    On the pull request, click Update branch in the merge box (the default option merges main in).

  • git rebase origin/main

    Danger: can lose work

    Replay your branch's commits on top of the latest main.

    Instead of a merge commit you get a straight line: your commits are recreated one by one as if you had started from today's main. Some teams require it for a tidy history.

    What can go wrong

    Every rebased commit gets a new hash, so the branch no longer matches GitHub and needs a force push; anyone else using the branch has to repair their copy. Conflicts can come up once per commit.

    Safer: git merge origin/main

    On GitHub

    Update branch → Update with rebase on the pull request does the same on GitHub.

  • git push --force-with-lease

    Danger: can lose work

    Overwrite your branch on GitHub, but only if nobody pushed to it since you last looked.

    Needed after a rebase or an amend of commits that were already pushed. Unlike a plain --force, it refuses when the branch on GitHub has commits your laptop hasn't seen.

    What can go wrong

    It replaces the branch's history on GitHub: commits that are not in your version are dropped from it, and a background fetch by your editor can defeat the check. Never use it on main or on a branch others work on.

    Safer: git merge origin/main

Review a pull request on your laptop

With the GitHub CLI you can list, read, try out and approve pull requests from the terminal.

  • gh pr diff <number>

    Safe: only looksGitHub CLI

    Read everything a pull request changes, in the terminal.

    Prints the same diff as the Files changed tab. Useful when you want to search the changes with your usual tools; it changes nothing locally.

    On GitHub

    The pull request's Files changed tab.

  • gh pr checks <number>

    Safe: only looksGitHub CLI

    See whether a pull request's automated checks passed.

    Lists each check (tests, build, preview deploy) with its state: pass, fail or pending. Add --watch to wait until they finish.

    On GitHub

    The checks list in the merge box at the bottom of the pull request, or the Checks tab.

  • gh pr checkout <number>

    Careful: changes thingsGitHub CLI

    Get a pull request's branch on your laptop to try the change yourself.

    Downloads the branch and switches your folder to it, so you can run the project and click through the feature. Switch back to main with git switch main when you're done.

    What can go wrong

    Your folder switches to the pull request's branch; commit or stash your own edits first, or Git may refuse to switch.

    On GitHub

    If the team has preview deployments, the link in the pull request's checks lets you try the change without any of this.

  • gh pr review <number> --approve

    Careful: changes thingsGitHub CLI

    Approve a pull request from the terminal.

    Submits an approving review under your name. Add -b "<text>" to say what you checked, for example that the copy matches the issue.

    What can go wrong

    Everyone sees the approval, and it can be the one that unblocks the merge; approve only what you actually checked.

    On GitHub

    In Files changed, click the review button (Submit review, or Review changes in older layouts), choose Approve and submit.

  • gh pr review <number> --comment -b "<text>"

    Careful: changes thingsGitHub CLI

    Leave review feedback without approving or blocking.

    Posts a review comment on the whole pull request. Use it for questions and notes; comments on specific lines are easier in the browser.

    What can go wrong

    The comment is posted at once and notifies the author and reviewers; it can be edited later but not unsent.

    On GitHub

    Open the review button in Files changed, write your note, choose Comment and submit.

Resolve a merge conflict

Find the conflicting files, finish the merge once they are fixed, or step back to where you started.

  • git diff --name-only --diff-filter=U

    Safe: only looks

    List only the files that still have conflicts.

    U stands for unmerged. Each name on the list still has conflict markers (<<<<<<<, =======, >>>>>>>) to sort out; an empty list means you can finish the merge. git status shows the same files among others.

    On GitHub

    Resolve conflicts on the pull request opens an editor that lists the conflicting files on the left.

  • git merge --continue

    Careful: changes things

    Finish a merge once every conflict is fixed.

    After you have edited each conflicting file and run git add on it, this creates the merge commit. Git opens an editor with a ready message; save and close it.

    What can go wrong

    Whatever is in the files now becomes the merge result, so check that no conflict markers or half-kept versions are left.

    On GitHub

    In the conflict editor, click Mark as resolved for each file, then Commit merge.

  • git merge --abort

    Careful: changes things

    Cancel a merge that stopped with conflicts and go back to before it.

    The emergency exit: your branch looks exactly as it did before the merge started. Useful when you need the author of the other change before deciding.

    What can go wrong

    Conflict fixes you have typed so far are thrown away, and if you had uncommitted edits before starting the merge, Git may not bring them back.

    On GitHub

    Nothing to cancel: leave the conflict editor without clicking Commit merge and nothing is saved.

  • git rebase --abort

    Careful: changes things

    Cancel a rebase in progress and restore your branch.

    If a rebase stops on a conflict and you would rather merge instead, this puts the branch back exactly as it was before the rebase began.

    What can go wrong

    Conflict fixes made during this rebase are discarded.

Also useful here:git statusgit add <file>

Undo safely

Most undo commands keep a record of what you undid. The few that don't are marked in red: read their note first.

  • git restore --staged <file>

    Careful: changes things

    Take a file out of the next commit, keeping your edits.

    The opposite of git add: the file is no longer staged, but its content in your folder stays exactly as you left it.

    What can go wrong

    Low: only the "include in next commit" mark changes; add the file again if you unstaged the wrong one.

  • git revert <commit>

    Careful: changes things

    Undo a commit by adding a new one that reverses it.

    The safe way to undo something that is already shared: history keeps both the original and the undo, and nobody's copy breaks. Push the new commit (or open a pull request with it) like any other change.

    What can go wrong

    If later commits changed the same lines, the revert stops with a conflict; and it adds a commit to your current branch, so check which branch you are on.

  • git revert -m 1 <commit>

    Careful: changes things

    Undo a whole merged pull request without rewriting main.

    For a pull request merged with a merge commit: -m 1 tells Git to keep main's side and remove what the branch brought in. If your team squash-merges, the pull request is a single ordinary commit and plain git revert <commit> does the job.

    What can go wrong

    Git still counts that branch as merged: merging it again later won't bring the undone changes back unless you revert the revert.

    On GitHub

    On the merged pull request, click Revert: GitHub prepares a new pull request that undoes it.

  • git reset --soft HEAD~1

    Careful: changes things

    Undo your last commit but keep its changes ready to commit again.

    HEAD~1 means "one commit back". The commit disappears from the branch while its edits stay staged, so you can split them or commit them differently.

    What can go wrong

    It rewrites your branch's history: fine for a commit that was never pushed, but a pushed commit would then need a force push.

  • git reset --hard <commit>

    Danger: can lose work

    Move your branch back to a commit and throw away everything after it.

    Makes your folder look exactly like that commit. Engineers use it to start over on a branch nobody else uses.

    What can go wrong

    Uncommitted edits are lost for good. Commits after that point disappear from the branch; on a shared branch this rewrites history for everyone.

    Safer: git revert <commit>

  • git stash push -m "<text>"

    Careful: changes things

    Put your unfinished edits aside without committing them.

    Your edits go onto a shelf and the folder returns to the last commit, so you can switch branches or pull. The message helps you recognise the shelf later; git stash pop brings the edits back.

    What can go wrong

    Brand-new files are not stashed unless you add -u, and a stash lives only on this laptop, where it is easy to forget.

  • git stash pop

    Careful: changes things

    Bring back the edits you last put aside.

    Applies the most recent stash to your folder and removes it from the list. git stash list shows everything you have put aside.

    What can go wrong

    If the files changed meanwhile, you can get a conflict; the stash is then kept, so nothing is lost.

  • git reflog

    Safe: only looks

    Find a commit that seems lost after a reset or a deleted branch.

    A diary of every place your branch pointer has been on this laptop, newest first. Find the line from before the accident, copy its hash, and an engineer can bring that state back, for example on a new branch with git switch -c <branch> <commit>.

  • git clean -fd

    Danger: can lose work

    Delete all untracked files and folders.

    Removes everything Git doesn't know about (new files you never added), leaving ignored files alone. Engineers use it to get a clean folder after a messy experiment.

    What can go wrong

    Deleted files were never committed, so they are gone for good: not in Git and not in the trash.

    Safer: git clean -n -d

Releases: is the fix out?

Merged is not released. Tags tell you which version first included a change and what went into each release.

  • git tag --list "v1.*"

    Safe: only looks

    List the release tags, filtered by a pattern.

    * matches anything, so "v1.*" lists every 1.x release. Without the pattern you get all tags. Add --sort=-v:refname to see the newest version first.

    On GitHub

    The Releases page, or its Tags tab, on the right side of the repository page.

  • git describe --tags

    Safe: only looks

    See which version the code in your folder is closest to.

    Names the nearest tag behind your current commit. v1.4.1 means you are exactly on that release; v1.4.1-3-g9c4a2d7 means three commits after it, at commit 9c4a2d7.

  • git tag --contains <commit>

    Safe: only looks

    See which releases include a commit.

    Lists every tag that already contains the commit. If the list starts at v1.4.1, the fix shipped in 1.4.1; an empty list means it hasn't been released yet, even if it is merged.

    On GitHub

    Open the commit page: the tags that contain it are listed under the commit message.

  • git branch -r --contains <commit>

    Safe: only looks

    Check whether a commit has reached main (or any other branch on GitHub).

    Lists the GitHub branches that contain the commit, as of your last git fetch. If origin/main is on the list, it is merged. If your team squash-merges, use the commit hash shown on the merged pull request, not one from the branch.

    On GitHub

    The commit page lists the branches that contain it under the commit message.

  • git log --oneline <tag>..<tag>

    Safe: only looks

    List everything that went in between two releases.

    Put the older tag first, for example v1.4.0..v1.5.0: you get the commits in 1.5.0 that were not in 1.4.0. With squash merges that is one line per pull request, a ready draft for release notes.

    On GitHub

    Open /compare/v1.4.0...v1.5.0 in the repository, or use Generate release notes when drafting a release.

  • git tag -a <tag> -m "<text>"

    Careful: changes things

    Mark the current commit as a release with a version tag.

    Creates an annotated tag, with your name, the date and a note, on the commit you are on, for example v1.5.0. It stays on your laptop until you push it.

    What can go wrong

    Tags are meant never to move: tag the wrong commit and push it, and people and tools may already have used that version before you fix it.

    On GitHub

    Releases → Draft a new release, type the new tag and pick the target branch; GitHub creates the tag when you publish.

  • git push origin <tag>

    Careful: changes things

    Publish a tag to GitHub.

    A plain git push doesn't send tags; this sends one. Many teams have automation that builds or deploys a release as soon as a version tag arrives.

    What can go wrong

    Pushing the tag can start a real release or deploy, and everyone now sees that version.

    On GitHub

    Publishing a release on GitHub creates and publishes its tag in one step.

  • git cherry-pick <commit>

    Careful: changes things

    Copy one commit onto your current branch, for example a fix onto a release branch.

    Teams with release branches use it to ship an urgent fix without everything else that is waiting in main. The copy gets a new hash, so the same change appears twice in history.

    What can go wrong

    It adds a commit to whichever branch you are on and can stop with a conflict; git cherry-pick --abort backs out.

Practice: pick the right command

Ten situations per round. Pick the command that does the job; after you answer, every option explains why it fits or doesn't.

You've solved 0 of 22 situations at least once.

Progress saved in this browser
Situation 1 of 10

"It's merged," says Daniel about the checkout fix. You want to confirm that commit 3f9a2c1 really is on main. Which command tells you?

Questions

Do product managers need to use Git in the terminal?
Mostly no. Everything our Git course teaches happens in the GitHub web interface, from reading history to reverting a pull request. These basic Git commands matter when the terminal shows up anyway: an engineer sends you one, you have a local copy of the repository, or you want to run a pull request yourself. Every command here that has a browser equivalent shows it.
What's the difference between git revert and git reset?
git revert undoes a commit by adding a new commit that reverses it; history keeps both, so it is safe on a shared branch like main. git reset moves your branch back to an earlier commit; with --hard it also throws away uncommitted work, and on a shared branch it rewrites history for everyone. When in doubt, revert.
How do I check whether a fix is already released?
Find the commit hash of the fix (on the merged pull request) and run git tag --contains with it. The tags listed are the releases that include it; an empty list means it is merged but not released yet. On GitHub, the commit page shows the same tags under the commit message.
Is git pull safe to run?
Usually. It brings the latest commits of your branch from GitHub and merges them into your folder, so your files change. If you and someone else edited the same lines, it stops with a conflict that you resolve or cancel with git merge --abort. To only look at what's new, run git fetch instead: it changes nothing.
What does "force push" do, and why do engineers avoid it on shared branches?
A normal push only adds commits. A force push replaces the branch on GitHub with your version, so commits that aren't in your version disappear from it, and everyone who built on them has to repair their copy. That's why teams protect main against it and use --force-with-lease only on their own branches.
What's the difference between Git and GitHub?
Git is the version control tool: it records the history of a project on any computer. GitHub is a website that hosts Git repositories and adds pull requests, reviews, issues and releases on top. The git commands work with any host; the gh commands and the browser paths on this page are GitHub's.
What do the words in angle brackets mean?
They are placeholders. In git show <commit>, replace <commit> with a real hash such as 3f9a2c1 and drop the brackets: git show 3f9a2c1. They stay in English in both languages because that is how engineers write them.
Does the trainer save my answers anywhere?
Only in this browser: how many times you got each situation right or wrong, the number of rounds and your best score. No answers, no text, nothing is sent to us. "Reset progress" clears it, with an Undo for a few seconds.

Terms from the glossary

Keep learning