Git alias appending parameters to end
ekko2
is missing a single dash at the end:
[alias]
ekko2 = !sh -c 'echo $1 && echo $1' -
See the Git Wiki on Advanced aliases with arguments:
[alias]
example = !sh -c 'ls $2 $1' -
Your ekko2
alias is really close... What you really want is this:
[alias]
ekko2 = !sh -c 'echo $1 && echo $1' -
Git aliases that execute shell commands do substitute the $n
variables, but they also append any arguments you pass them to the end of the command. So in your first example git ekko master
is equivalent to echo master && echo master master
, which explains its output.
Your second example is closer, but you're passing "master" to the sh
command, which is just ignoring the extra argument. By adding -
to the end of the alias, you're telling sh
that the arguments that follow are intended for the script sh
is executing, and not for sh
itself.