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别名无法正常工作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

直接从git在虚拟环境中安装python包[重复]

别名函数的 Git 完成 [重复]

找不到 Git 命令。请创建一个别名或将其添加到您的 PATH [重复]

注销功能无法正常工作[重复]

Bigquery 重复数据删除查询无法正常工作

使用 PyQt5 构建并由 pyinstaller 编译的 GUI 无法正常工作 [不重复] [重复]