Git Advanced: A Git Cheat Sheet

Join the AI Workshop to learn more about AI and how it can be applied to web development. Next cohort February 1st, 2026

The AI-first Web Development BOOTCAMP cohort starts February 24th, 2026. 10 weeks of intensive training and hands-on projects.


Squash a series of commits and rewrite the history by writing them as one

git rebase -i

this puts you in the interactive rebasing tool.

Type s to apply squash to a commit with the previous one. Repeat the s command for as many commits as you need.

Take a commit that lives in a separate branch and apply the same changes on the current branch

single commit:

git cherry-pick <commit>

for multiple commits:

git cherry-pick <commit1> <commit2> <commit3>

Restore the status of a file to the last commit (revert changes)

git checkout -- <filename>

Show a pretty graph of the commit history

git log --pretty=format:"%h %s" --graph

Get a prettier log

git log --pretty=format:"%h - %an, %ar : %s"

Get a shorter status

git status -s

Checkout a pull request locally

git fetch origin pull/<id>/head:<branch>

git checkout <branch>

List the commits that involve a specific file

git log --follow -- <filename>

List the commits that involve a specific file, including the commits content

git log --follow -p -- <filename>

List the repository contributors ordering by the number of commits

git shortlog -s -n

Undo the last commit you pushed to the remote

git revert -n HEAD

Pick every change you haven’t already committed and create a new branch

git checkout -b <branch>

Stop tracking a file, but keep it in the file system

git rm -r --cached

Get the name of the branch where a specific commit was made

git branch --contains <commit>

Lessons in this unit:

0: Introduction
1: Working with Remotes
2: Squashing Commits
3: Rebase vs Merge
4: Git Bisect for Debugging
5: Git Worktrees
6: Git Submodules
7: Understanding Detached HEAD
8: Managing Secrets in Git
9: Git Workflows and Best Practices
10: How to push to 2 repositories at the same time and keep them in sync
11: How to update a Git branch from another branch
12: Git, detached HEAD
13: Trigger deploys on Netlify with submodules
14: ▶︎ A Git Cheat Sheet
15: Git, squashing vs not squashing
16: An incomplete list of great Git tutorials
17: Git, what if you forgot to add a file to a commit?
18: Git workflow to manage work on multiple branches
19: How to setup the Git SSH keys