【问题标题】:Set up git alias with an input argument使用输入参数设置 git 别名
【发布时间】:2021-02-01 16:41:27
【问题描述】:

可以使用git config --global --unset alias.<badalias> 删除 Git 别名。
我想让生活更轻松,并能够删除 git 别名: git rmalias <badalias>.
我对这个别名的尝试是:

git config --global alias.rmalias '!git config --global --unset alias.'

我遇到的问题是

error: key does not contain variable name: alias.

因为命令现在读取 git config --global --unset alias. badalias.

如何定义别名以便将额外参数放在正确的位置?

【问题讨论】:

  • 这能回答你的问题吗? How do I alias commands in git?
  • 我知道如何设置 git 别名,问题是我无法将参数(alias-name)传递给别名。我不相信那个帖子已经回答了。

标签: git git-alias


【解决方案1】:

更复杂的别名(包括将参数连接到其他文本的别名)的技巧是在 alias 命令中创建并立即运行 shell 函数:

git config --global alias.rmalias '!f() { git config --global --unset "alias.$1"; }; f'

这将创建一个函数f,它使用它运行的 Git 命令中的第一个参数$1。然后它运行函数f(它将命令行上给别名的所有参数作为参数传递给函数)。

在命令行上创建这类别名需要特别注意空格和引号,因此复制和粘贴是一个聪明的主意——如果你在整个别名周围使用双引号,你的 shell 可能会在 ! 上进行历史扩展并打破别名,并且在函数定义中省略标点符号周围的空格,这会使函数定义无效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2012-03-22
    • 2017-06-20
    • 2021-12-30
    • 2013-08-10
    • 2020-07-19
    相关资源
    最近更新 更多