===== Overview ===== Proper definition and usage of Git aliases. Links: * [[https://stackoverflow.com/questions/7066325/list-git-aliases/22183573#22183573|https://stackoverflow.com/questions/7066325/list-git-aliases/22183573#22183573]] * [[https://gist.github.com/pksunkara/988716|https://gist.github.com/pksunkara/988716]] ===== Setting and listing aliases ===== ==== Setting regular Git aliases ==== How to set a //regular// Git alias (note the need for quotes with multi-word values): $ git config --global alias.a add $ git config --global alias.cm commit $ git config --global alias.co checkout $ git config --global alias.b branch $ git config --global alias.cb "checkout -b" after which you can use Git commands like: $ git a Makefile $ git cm $ git cb newbranch ==== Recursive Git aliases ==== You can also define Git aliases in terms of other Git aliases: $ git config --global alias.bl blame $ git config --global alias.bm 'bl Makefile" after which you could run the equivalent of ''git blame Makefile'' with: $ git bm ==== Aliases in the .gitconfig file ==== What ends up in your ''~/.gitconfig'' file: ... [alias] a = add cm = commit co = checkout b = blame cb = checkout -b bm = b Makefile ... ===== How to unset Git aliases ===== $ git config --global --unset alias.blm or just edit the ''.gitconfig'' file. ===== How to set a shell-style Git alias ===== $ git alias bu "!git rev-parse --abbrev-ref --symbolic-full-name "@{u}"" The shell command being run does not have to be ''git''.