我有一个git别名应该做git checkout -b <branchname>
(基本上创建分支并检查出来)。我的别名如下:
newbranch = !sh -c 'git checkout -b "$1"'
但是当我尝试git newbranch mytestbbranch
时,我得到一个错误,说“b”开关需要一个参数。
我有一个类似的重命名别名,如:
rename = !sh -c 'git branch -m "$1" "$2"'
那个工作得很好。我很困惑为什么newbranch
别名不起作用。
答案 0 :(得分:2)
使用
之类的别名时!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。
另见: