git别名无法正常工作[重复]
Posted
技术标签:
【中文标题】git别名无法正常工作[重复]【英文标题】:git alias not working properly [duplicate] 【发布时间】:2013-08-23 05:11:24 【问题描述】:我有一个应该做git checkout -b <branchname>
的 git 别名(基本上是创建分支并检查它)。我的别名如下:
newbranch = !sh -c 'git checkout -b "$1"'
但是当我尝试git newbranch mytestbbranch
时,我收到一条错误消息,提示“b”开关需要一个参数。
我有一个类似的重命名别名,如下所示:
rename = !sh -c 'git branch -m "$1" "$2"'
而且那个工作得很好。我很困惑为什么 newbranch
别名不起作用。
【问题讨论】:
git alias with positional parameters (git foo aaa bbb ccc => foo aaa && bar bbb && baz ccc) 和 Pass an argument to a Git alias command 的副本。 【参考方案1】:当你使用别名时
!sh -c 'git checkout -b "$1"'
你应该需要一个结尾破折号-
:
!sh -c 'git checkout -b "$1"' -
我不明白为什么您的其他别名有效。
根据Advanced aliases with arguments from the Linux Kernel Git wiki:
从 1.5.3 版本开始,git 也支持将参数附加到以“!”为前缀的命令中。如果您需要执行重新排序,或者使用两次参数,您可以使用这个技巧:
[alias] example = !sh -c 'ls $2 $1' -
最后的破折号是参数以 $1 开头,而不是 $0。
另见:
-
git alias with positional parameters (git foo aaa bbb ccc => foo aaa && bar bbb && baz ccc)。
Pass an argument to a Git alias command.
【讨论】:
谢谢,我不确定为什么另一个在这种情况下也可以工作......但尾随破折号所有工作。我错过了关于尾随破折号的那一行。以上是关于git别名无法正常工作[重复]的主要内容,如果未能解决你的问题,请参考以下文章