Skip to main content
  1. Blogs/

Git 101 – Commands and Workflows Cheat Sheet

·3 mins
Table of Contents

A quick, task-oriented Git reference. Pair this with the in-depth guide for concepts and best practices.

TL;DR

  • Working tree → git add → Staging area → git commit → Local repo → git push → Remote.
  • Most common daily commands: status, add, commit, push, pull, checkout, merge.
  • Undo staged changes: git restore --staged <file>. Undo last commit (keep changes): git reset HEAD~1.
  • For concepts and workflows, read the full Git guide.

Minimal Mental Model
#

graph LR
  WD[Working Dir] -- add --> ST[Staging]
  ST -- commit --> REPO[Local Repo]
  REPO -- push --> ORI[Origin]
  ORI -- fetch/pull --> REPO

Setup
#

git --version
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main

Create or Clone
#

git init
git clone <url>

Status and Diffs
#

git status
git diff               # unstaged
git diff --staged      # staged vs HEAD

Stage and Commit
#

git add <path>
git add -p             # interactive hunks
git commit -m "feat: message"
git commit --amend     # edit last commit

Branching
#

git branch
git switch -c feature/x
git switch main
git branch -d feature/x

Sync with Remote
#

git remote -v
git fetch
git pull               # merge
git pull --rebase      # rebase
git push -u origin my-branch

Merge vs Rebase
#

git switch my-branch && git merge main
git switch my-branch && git rebase main

Resolve Conflicts
#

git status
# edit files, remove markers
git add <file>
git commit                 # after merge
git rebase --continue      # during rebase

Stash Work
#

git stash push -m "wip"
git stash list
git stash pop

Undo Safely
#

git restore --staged <file>   # unstage
git restore <file>            # discard local edits
git revert <sha>              # new commit to undo
git reset --soft HEAD~1       # keep changes, drop last commit
git reflog                    # find lost commits

Tags and Releases
#

git tag -a v1.0.0 -m "msg"
git push --tags

Ignore and Clean
#

echo "node_modules/" >> .gitignore
git clean -fdx   # dangerous: removes untracked files

Authentication (Quick)
#

# HTTPS + PAT
git clone https://github.com/owner/repo.git

# SSH
ssh-keygen -t ed25519 -C "you@example.com"
ssh-add ~/.ssh/id_ed25519
git clone git@github.com:owner/repo.git

Conventional Commits (Optional)
#

feat(auth): add oauth login
fix(api): handle null pointer in user service
chore(ci): update node to 20

Common One-Liners
#

# See last commit summary
git log -1 --stat

# Interactive rebase last 5 commits
git rebase -i HEAD~5

# Squash branch onto main
git switch my-branch && git rebase -i main

Quick PR Flow (GitHub)
#

git switch -c feat/x
# edit, add, commit
git push -u origin feat/x
# open PR on GitHub

See also: the full guide “The Definitive Guide to Version Control with Git and GitHub”.

Got a document extraction problem?

I'll look at your documents and tell you whether automation makes sense. 30 minutes, no commitment.