使用输入参数设置 git 别名

Set up git alias with an input argument

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.

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

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

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

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

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