skip to content
Ink & Bytes
Table of Contents

If you use git daily, you’re probably typing the same 5-10 commands hundreds of times a week. Git aliases fix that.

Setup

Add these to your ~/.gitconfig under [alias]:

[alias]
# Status & info
s = status -sb
l = log --oneline -20
ll = log --oneline --graph --all -30
# Staging
a = add
aa = add -A
ap = add -p
# Commits
c = commit
cm = commit -m
ca = commit --amend --no-edit
cam = commit --amend
# Branches
co = checkout
cb = checkout -b
bd = branch -d
bD = branch -D
# Push & pull
p = push
pf = push --force-with-lease
pl = pull --rebase
# Diff
d = diff
ds = diff --staged
dn = diff --name-only
# Stash
st = stash
stp = stash pop
stl = stash list
# Reset
unstage = reset HEAD --
undo = reset --soft HEAD~1

The Ones I Use Most

git s — Compact Status

Terminal window
$ git s
## main...origin/main
M src/components/Header.astro
?? src/content/blog/new-post.md

The -sb flag gives you branch info and short format. No noise, just what changed.

git l — Quick Log

Terminal window
$ git l
a1b2c3d Add dark mode toggle
e4f5g6h Fix header alignment
i7j8k9l Update dependencies

Twenty commits, one line each. Enough to orient yourself without scrolling.

git ap — Patch Add

The most underused git command. git add -p lets you stage individual chunks within a file:

Terminal window
$ git ap
# Shows each change and asks:
# Stage this hunk [y,n,q,a,d,s,e,?]?

This is how you make clean, focused commits instead of “fixed stuff” commits.

git undo — Soft Reset

Terminal window
$ git undo
# Undoes the last commit but keeps all changes staged

Made a typo in the commit message? Forgot to add a file? git undo is your safety net.

git pf — Safe Force Push

Terminal window
$ git pf
# push --force-with-lease
# Force pushes BUT fails if someone else pushed first

Never use --force. Always use --force-with-lease. It prevents you from overwriting a teammate’s work.

Shell Aliases (Even Faster)

For commands you run 50+ times a day, add shell aliases too:

~/.zshrc
alias g="git"
alias gs="git s"
alias gc="git cm"
alias gp="git p"
alias gl="git l"
alias gd="git d"
alias ga="git aa"

Now gs shows status, gc "message" commits, gp pushes. Three characters per command.

The Compound Effect

These aliases save maybe 2-3 seconds per command. But over 100+ git operations per day, that’s 5 minutes. Over a year, that’s 30+ hours — plus the cognitive load reduction of not remembering long flags.


Start with s, l, cm, and undo. Add more as you feel friction. Your future self will thank you.