git别名不能正常工作

时间:2013-08-21 00:39:21

标签: git bash alias

我有一个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别名不起作用。

1 个答案:

答案 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。

另见:

  1. git alias with positional parameters (git foo aaa bbb ccc => foo aaa && bar bbb && baz ccc)
  2. Pass an argument to a Git alias command