将所有参数传递给git别名

时间:2012-04-20 18:48:56

标签: git bash

为了简化我的顾虑,我将其缩小为以下内容:

我有一个GIT别名定义如下:

cii = "!f() { git commit "$@"; }; f"

当我跑步时

$ git cii -m "test1"

它工作正常,但失败了

$ git cii -m "test1 and test2"
error: pathspec 'and' did not match any file(s) known to git.
error: pathspec 'test2' did not match any file(s) known to git.

有什么想法吗?

请注意,我的真正别名比上面的要复杂得多,所以请回复 cii =“commit”不是一个选项。这里的要点是将输入参数传递给函数。

1 个答案:

答案 0 :(得分:5)

您需要引用嵌入式双引号。

cii = "!f() { git commit \"$@\"; }; f"
然后,

git将执行"$@"的标准shell扩展,转换为每个参数的单个词 - 例如"$1" "$2" "$3" ...