Skip to content

Instantly share code, notes, and snippets.

@jonasmarco
Last active September 18, 2024 02:07
Show Gist options
  • Save jonasmarco/6907f42d8216216013937420eb64cc3f to your computer and use it in GitHub Desktop.
Save jonasmarco/6907f42d8216216013937420eb64cc3f to your computer and use it in GitHub Desktop.
Oh-My-Zsh Git Cheat Sheet
# Git Aliases
### Adding Changes
- `g`: `git`
- `ga`: `git add`
- `gaa`: `git add --all`
- `gapa`: `git add --patch`
- `gau`: `git add --update`
- `gav`: `git add --verbose`
### Applying Changes
- `gap`: `git apply`
- `gapt`: `git apply --3way`
### Branching
- `gb`: `git branch`
- `gba`: `git branch -a`
- `gbd`: `git branch -d`
- `gbda`: `git branch --no-color --merged | grep -vE "^([+]|\s($(git_main_branch)|$(git_develop_branch))\s*$)" | xargs git branch -d 2>/dev/null`
- `gbD`: `git branch -D`
- `gbl`: `git blame -b -w`
- `gbnm`: `git branch --no-merged`
- `gbr`: `git branch --remote`
### Bisecting
- `gbs`: `git bisect`
- `gbsb`: `git bisect bad`
- `gbsg`: `git bisect good`
- `gbsr`: `git bisect reset`
- `gbss`: `git bisect start`
### Committing Changes
- `gc`: `git commit -v`
- `gc!`: `git commit -v --amend`
- `gcn!`: `git commit -v --no-edit --amend`
- `gca`: `git commit -v -a`
- `gca!`: `git commit -v -a --amend`
- `gcan!`: `git commit -v -a --no-edit --amend`
- `gcans!`: `git commit -v -a -s --no-edit --amend`
- `gcam`: `git commit -a -m`
- `gcas`: `git commit -a -s`
- `gcasm`: `git commit -a -s -m`
- `gcsm`: `git commit -s -m`
- `gcmsg`: `git commit -m`
- `gcs`: `git commit -S`
### Checking Out
- `gco`: `git checkout`
- `gcb`: `git checkout -b`
- `gcor`: `git checkout --recurse-submodules`
- `gcm`: `git checkout $(git_main_branch)`
- `gcd`: `git checkout $(git_develop_branch)`
### Cloning and Cleaning
- `gcl`: `git clone --recurse-submodules`
- `gccd`: `git clone --recurse-submodules "$@" && cd "$(basename $_ .git)"`
- `gclean`: `git clean -id`
- `gpristine`: `git reset --hard && git clean -dffx`
### Cherry Picking
- `gcp`: `git cherry-pick`
- `gcpa`: `git cherry-pick --abort`
- `gcpc`: `git cherry-pick --continue`
### Config and Logs
- `gcf`: `git config --list`
- `gcount`: `git shortlog -sn`
- `gg`: `git gui citool`
- `gga`: `git gui citool --amend`
- `gl`: `git pull`
- `glg`: `git log --stat`
- `glgp`: `git log --stat -p`
- `glgg`: `git log --graph`
- `glgga`: `git log --graph --decorate --all`
- `glgm`: `git log --graph --max-count=10`
- `glo`: `git log --oneline --decorate`
- `glol`: `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'`
- `glols`: `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat`
- `glod`: `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'`
- `glods`: `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short`
- `glola`: `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all`
- `glog`: `git log --oneline --decorate --graph`
- `gloga`: `git log --oneline --decorate --graph --all`
- `glp`: `git log --pretty=<format>`
### Merging and Rebasing
- `gm`: `git merge`
- `gmom`: `git merge origin/$(git_main_branch)`
- `gmtl`: `git mergetool --no-prompt`
- `gmtlvim`: `git mergetool --no-prompt --tool=vimdiff`
- `gmum`: `git merge upstream/$(git_main_branch)`
- `gma`: `git merge --abort`
- `gr`: `git remote`
- `gra`: `git remote add`
- `grb`: `git rebase`
- `grba`: `git rebase --abort`
- `grbc`: `git rebase --continue`
- `grbd`: `git rebase $(git_develop_branch)`
- `grbi`: `git rebase -i`
- `grbm`: `git rebase $(git_main_branch)`
- `grbom`: `git rebase origin/$(git_main_branch)`
- `grbo`: `git rebase --onto`
- `grbs`: `git rebase --skip`
- `grh`: `git reset`
- `grhh`: `git reset --hard`
- `groh`: `git reset origin/$(git_current_branch) --hard`
### Pushing Changes
- `gp`: `git push`
- `gpd`: `git push --dry-run`
- `gpf`: `git push --force-with-lease`
- `gpf!`: `git push --force`
- `gpoat`: `git push origin --all && git push origin --tags`
- `gpu`: `git push upstream`
- `gpv`: `git push -v`
### Other Commands
- `gignore`: `git update-index --assume-unchanged`
- `gignored`: `git ls-files -v | grep "^[[:lower:]]"`
- `git-svn-dcommit-push`: `git svn dcommit && git push github $(git_main_branch):svntrunk`
- `gk`: `gitk --all --branches &!`
- `gke`: `gitk --all $(git log -g --pretty=%h) &!`
- `gsb`: `git status -sb`
- `gsd`: `git svn dcommit`
- `gsh`: `git show`
- `gsi`: `git submodule init`
- `gsps`: `git show --pretty=short --show-signature`
- `gsr`: `git svn rebase`
- `gss`: `git status -s`
- `gst`: `git status`
- `gsta`: `git stash push`
- `gstaa`: `git stash apply`
- `gstc`: `git stash clear`
- `gstd`: `git stash drop`
- `gstl`: `git stash list`
- `gstp`: `git stash pop`
- `gsts`: `git stash show --text`
- `gstu`: `git stash --include-untracked`
- `gstall`: `git stash --all`
- `gsu`: `git submodule update`
- `gsw`: `git switch`
- `gswc`: `git switch -c`
- `gswm`: `git switch $(git_main_branch)`
- `gswd`: `git switch $(git_develop_branch)`
- `gts`: `git tag -s`
- `gtv`: `git tag | sort -V`
- `gtl`: `gtl(){ git tag --sort=-v:refname -n -l ${1}* }; noglob gtl`
- `gunignore`: `git update-index --no-assume-unchanged`
- `gunwip`: `git log -n 1 | grep -q -c "--wip--" && git reset HEAD~1`
- `gup`: `git pull --rebase`
- `gupv`: `git pull --rebase -v`
- `gupa`: `git pull --rebase --autostash`
- `gupav`: `git pull --rebase --autostash -v`
- `gupom`: `git pull --rebase origin $(git_main_branch)`
- `gupomi`: `git pull --rebase=interactive origin $(git_main_branch)`
- `glum`: `git pull upstream $(git_main_branch)`
- `gluc`: `git pull upstream $(git_current_branch)`
- `gwch`: `git whatchanged -p --abbrev-commit --pretty=medium`
- `gwip`: `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign -m "--wip-- [skip ci]"`
- `gam`: `git am`
- `gamc`: `git am --continue`
- `gams`: `git am --skip`
- `gama`: `git am --abort`
- `gamscp`: `git am --show-current-patch`
Original Reference: https://kapeli.com/cheat_sheets/Oh-My-Zsh_Git.docset/Contents/Resources/Documents/index
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment