I want to create a Git alias to perform multiple commands, but I cant find documentation on how this is done.
From 'man git-config'
alias.*
Command aliases for the git(1) command wrapper - e.g. after defining "alias.last = cat-file commit HEAD", the invocation "git last" is equivalent to "git cat-file commit HEAD". To avoid confusion and troubles with script usage, aliases that hide existing Git commands are ignored. Arguments are split by spaces, the usual shell quoting and escaping is supported. quote pair and a backslash can be used to quote them.
If the alias expansion is prefixed with an exclamation point, it will be treated as a shell command. For example, defining "alias.new = !gitk --all --not ORIG_HEAD", the invocation "git new" is equivalent to running the shell command "gitk --all --not ORIG_HEAD". Note that shell commands will be executed from the top-level directory of a repository, which may not necessarily be the current directory. GIT_PREFIX is set as returned by running git rev-parse --show-prefix from the original current directory. See git-rev-parse(1).
It is important to note that there is no direct git alias command. Aliases are created through the use of the git config command and the Git configuration files. As with other configuration values, aliases can be created in a local or global scope.
All you have to do is to create a file and add all your commands in the same sequence in which you want to execute. That's it!
Your git aliases are often stored per your user's configuration at ~/. gitconfig . You can also manually set aliases using, for example, the command git config alias.
$ git config alias.q '!echo a; echo b' $ git q
Output:
a b
I think this is (rudimentarily) documented in man git-config
under alias.*
Note that git commands should include git, unlike in normal aliases. It is caused by fact that it is treated as a shell command, not as a git command (see manpage quoted in the question). For example to chain
git init
and
git commit --allow-empty -m "empty initial commit"
it is necessary to create
"!git init; git commit --allow-empty -m \"empty initial commit\""
alias.
Say the commands are echo a
and echo b
(not a
and b
), to add multiple commands for an alias q
:
From the command line:git config alias.q '!echo a; echo b'
Directly in the configuration file:
[alias] q = "!echo a; echo b"
For more complex things, define a shell function and call it:'!f() { echo a ; echo b ; }; f'
For passing parameters to the commands see:
Git alias with positional parameters
Git Alias - Multiple Commands and Parameters
Based in Jonathan Wakely's comment
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With