git的参数别名

时间:2016-05-14 14:22:55

标签: git bash terminal alias

我在mac环境中使用了别名,它非常有用。但是我想在使用别名的工作中进一步提高。现在我想使用别名来完成添加文件,提交和推送。所以,我创建了一个别名,但它不起作用;  这是代码

alias track="trackFunction() { git add .;  git commit %@; git push}"

输出如下:

  

错误:pathspec'%@'与git已知的任何文件都不匹配。

所以,我希望你能指导我,因为我是所有这些工作的新手。

2 个答案:

答案 0 :(得分:2)

当您调用别名时,您希望执行trackFunction的内容。但你所定义的是“当我调用track时,定义函数trackFunction”。

由于您希望别名接受参数,因此您可以使用此参数(请参阅此answer about parameters for alias):

trackFunction() { git add .;  git commit "$@"; git push; }
alias track=trackFunction

但由于您已经可以为函数track命名,因此您不需要别名,只需将函数定义放入.bashrc.profile文件即可。

作为旁注,我不知道您的目标工作流程是什么,但您可能希望在git pull之前加入git push以避免被拒绝。

答案 1 :(得分:2)

我认为你在git commit %@中只有一个拼写错误。它应该是$@而不是%@,因此您可以传递-m 'Commit message'等参数。

我还认为这里不需要编写函数。我刚刚通过调用alias track="git add .; git commit"在Linux机器上成功测试了track -m 'Commit message'