首页 > 解决方案 > 使用输入参数设置 git 别名

问题描述

Git 别名可以用git config --global --unset alias.<badalias>.
我想让生活更轻松,并且能够使用以下命令删除 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.

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

标签: gitgit-alias

解决方案


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

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

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

在命令行上创建这些别名需要非常小心的间距和引号,所以复制和粘贴是一个聪明的主意——如果你在整个别名周围使用双引号,你的 shell 可能会扩展历史!并破坏别名,并且在函数定义中省略标点符号周围的空格,这会使函数定义无效。


推荐阅读