2014-09-27 62 views
2

我找不到git的别名的,允许的任何实例参数用空格参数,这里是我创造:的Git别名的与具有空间

cax = "!f() { msg=${1-Default message}; git add --all && git commit -am "$msg"; }; f" 

这工作正常:

git cax "one-word" 

但打破了:

git cax "one word" 

谢谢!

+0

你用单引号试过了吗? 'cax ='!f(){msg = $ {1-Default message}; git add --all && git commit -am“$ msg”; }; f'' – VonC 2014-09-27 15:52:45

+0

@VonC这是有道理的,但在我的系统上测试表明它不起作用。 – hvd 2014-09-27 16:05:13

回答

3

您是否注意到您的问题中突出显示的奇怪语法?

 
cax = "!f() { msg=${1-Default message}; git add --all && git commit -am "$msg"; }; f" 
^^^^^^                 ^^^^   black 
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ red 

这应该是一个很大的暗示。问题是$msg没有在你的函数定义中引用。 "字符在Git阅读你的配置文件时被Git特别对待,但是你想将这两个字符传递给shell。改为使用\"$msg\"