1alias.*::
2Command aliases for the linkgit:git[1] command wrapper - e.g.
3after defining `alias.last = cat-file commit HEAD`, the invocation
4`git last` is equivalent to `git cat-file commit HEAD`. To avoid
5confusion and troubles with script usage, aliases that
6hide existing Git commands are ignored. Arguments are split by
7spaces, the usual shell quoting and escaping is supported.
8A quote pair or a backslash can be used to quote them.
9+
10Note that the first word of an alias does not necessarily have to be a
11command. It can be a command-line option that will be passed into the
12invocation of `git`. In particular, this is useful when used with `-c`
13to pass in one-time configurations or `-p` to force pagination. For example,
14`loud-rebase = -c commit.verbose=true rebase` can be defined such that
15running `git loud-rebase` would be equivalent to
16`git -c commit.verbose=true rebase`. Also, `ps = -p status` would be a
17helpful alias since `git ps` would paginate the output of `git status`
18where the original command does not.
19+
20If the alias expansion is prefixed with an exclamation point,
21it will be treated as a shell command. For example, defining
22`alias.new = !gitk --all --not ORIG_HEAD`, the invocation
23`git new` is equivalent to running the shell command
24`gitk --all --not ORIG_HEAD`. Note that shell commands will be
25executed from the top-level directory of a repository, which may
26not necessarily be the current directory.
27`GIT_PREFIX` is set as returned by running `git rev-parse --show-prefix`
28from the original current directory. See linkgit:git-rev-parse[1].