我如何写一个 git 别名以字符串作为参数
How can I write a git alias that takes a string as an argument
我想为git写一个别名:
git log --all --grep='Big boi'
我目前拥有的是:
[alias]
search = "!f() { str=${@}; echo $str; git log --all --grep=$str; }; f"
它完美地回显了字符串但给出了错误,我似乎无法弄清楚如何将字符串传递给 grep 标志。
$ user in ~/src/repo on master λ git search 'Big boi'
Big boi
fatal: ambiguous argument 'boi': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
如果有任何不同,我正在使用 zsh。 . .
如果您使用的是 double-quotes:
,则该别名似乎有效
git search "Big boi"
我还让它与 --grep=\"$str\"
一起使用(并且仍在使用 double-quotes)
OP joshuatvernon adds :
I amended it to
search = "!f() { str="$*"; echo "$str"; git log --all --grep=\"$str\"; }; f"
and it works with single, double or no quotes.
我想为git写一个别名:
git log --all --grep='Big boi'
我目前拥有的是:
[alias]
search = "!f() { str=${@}; echo $str; git log --all --grep=$str; }; f"
它完美地回显了字符串但给出了错误,我似乎无法弄清楚如何将字符串传递给 grep 标志。
$ user in ~/src/repo on master λ git search 'Big boi'
Big boi
fatal: ambiguous argument 'boi': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
如果有任何不同,我正在使用 zsh。 . .
如果您使用的是 double-quotes:
,则该别名似乎有效git search "Big boi"
我还让它与 --grep=\"$str\"
一起使用(并且仍在使用 double-quotes)
OP joshuatvernon adds
I amended it to
search = "!f() { str="$*"; echo "$str"; git log --all --grep=\"$str\"; }; f"
and it works with single, double or no quotes.