gpt4 book ai didi

git - 如何使用别名扩展内置 Git 命令?

转载 作者:太空狗 更新时间:2023-10-29 14:39:58 26 4
gpt4 key购买 nike

在回答“Git pull hook script which executes locally”时,我偶然发现了用例为内置 git 命令(例如 pullpush)加上扩展名。我该怎么做?

首先想到的是:

[alias]
push = "!echo -n \"really push? [y/n]\";read -s -n 1 really;if [[ $really == \"y\" ]];then git push; else echo \"aborting\"; fi"

只要我不命名我的别名 push(例如 qp 或类似名称),这就可以正常工作。但是我一调用它 push,它就被忽略了。

是否有一种 git 方法可以使用别名扩展内置 git 命令,或者我是否必须在我的 .bashrc 中设置别名?

最佳答案

简短回答:你不能

Git 明确不允许这样做,以防止可能影响 git 命令调用(在脚本等中)的混淆和阴影。参见 git-config manpage .

alias.*

Command aliases for the git(1) command wrapper - e.g. after defining "alias.last = cat-file commit HEAD", the invocation "git last" is equivalent to "git cat-file commit HEAD". To avoid confusion and troubles with script usage, aliases that hide existing git commands are ignored. Arguments are split by spaces, the usual shell quoting and escaping is supported. quote pair and a backslash can be used to quote them.

如您所述,您可以将别名命名为其他名称并使用它,或者在 bash 中执行。但是,请注意,在 bash 中不可能使用多词别名,因此您不能为“git push”设置别名。相反,您需要使用一个函数——请参阅 SuperUser 上的“Bash: Spaces in alias name”以获取一些提示(您可能会完全采用它)。

关于git - 如何使用别名扩展内置 Git 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com