【发布时间】:2015-01-29 12:20:37
【问题描述】:
我想为一个复杂的 git 命令创建一个别名:
git push origin HEAD:refs/for/BRANCH-NAME
我希望命令 my-alias my-branch 运行 git push origin HEAD:refs/for/my-branch。到目前为止,我已经尝试过:
alias my-push='git push origin HEAD:refs/for/$1'
alias my-push='git push origin HEAD:refs/for/"$1"'
我想知道正确的解决方案和解释为什么上面会失败。
我确实有这样的别名:
alias run-schema='cd ~/sources/schema; python -m SimpleHTTPServer $1'
而且效果很好 - 没有多余的撇号/引号。
【问题讨论】:
-
@fredtantini 指出的解决方案是我会做的。
-
@fredtantini 这不是重复的。起初我找到了上面的链接,但我尝试了却找不到问题所在。
-
正如我在下面所说的 你不能有任何别名参数(按设计)
-
奥利?我觉得我可以。看看我添加到描述中的示例(python SimpleHTTPServer)。
-
它不起作用,因为您认为它起作用。
run-schema foo扩展为cd ...; python -m SimpleHTTPServer $1 run-schema。由于交互式 shell 没有设置任何位置参数,未加引号的$1消失了,留下run-schema作为python命令的唯一位置参数。尝试运行set -- nonexistantschema之类的内容,然后尝试使用您的别名。