My Git Aliases

Git Config Commands

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.dt difftool
git config --global alias.mt mergetool
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.lol "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
git config --global alias.lola "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short --all"
git config --global alias.fpull 'pull --ff-only --all --prune'
git config --global alias.publish '!git push -u origin $(git symbolic-ref --short HEAD)'
git config --global alias.unpublish '!git push origin --delete $(git symbolic-ref --short HEAD)'
git config --global alias.spush 'push --recurse-submodules=on-demand'
git config --global alias.sdiff "!git diff && git submodule foreach 'git diff'"
git config --global alias.supdate 'submodule update --remote --rebase'
git config --global alias.alias 'config --get-regexp ^alias\.'
git config --global alias.smerge 'merge --squash'
git config --global alias.amend '!git add . && git commit --amend --no-edit && git push -f'

One-liner to add to ~/.zshrc

echo 'git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.dt difftool
git config --global alias.mt mergetool
git config --global alias.unstage '\''reset HEAD --'\''
git config --global alias.last '\''log -1 HEAD'\''
git config --global alias.lol "log --pretty=format:'\''%h %ad | %s%d [%an]'\'' --graph --date=short"
git config --global alias.lola "log --pretty=format:'\''%h %ad | %s%d [%an]'\'' --graph --date=short --all"
git config --global alias.fpull '\''pull --ff-only --all --prune'\''
git config --global alias.publish '\''!git push -u origin $(git symbolic-ref --short HEAD)'\''
git config --global alias.unpublish '\''!git push origin --delete $(git symbolic-ref --short HEAD)'\''
git config --global alias.spush '\''push --recurse-submodules=on-demand'\''
git config --global alias.sdiff "!git diff && git submodule foreach '\''git diff'\''"
git config --global alias.supdate '\''submodule update --remote --rebase'\''
git config --global alias.alias '\''config --get-regexp ^alias\.'\''
git config --global alias.smerge '\''merge --squash'\''
git config --global alias.amend '\''!git add . && git commit --amend --no-edit && git push -f'\''' >> ~/.zshrc && source ~/.zshrc