【问题标题】:git alias not working properly [duplicate]git别名无法正常工作[重复]
【发布时间】: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 bash alias


【解决方案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。

另见:

  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.

【讨论】:

  • 谢谢,我不确定为什么另一个在这种情况下也可以工作......但尾随破折号所有工作。我错过了关于尾随破折号的那一行。
猜你喜欢
  • 2017-09-03
  • 2018-06-27
  • 2017-07-15
  • 2015-09-06
  • 2016-05-06
  • 2016-05-12
  • 2018-07-19
  • 2018-10-21
  • 1970-01-01
相关资源
最近更新 更多