如何为git add*name*创建别名?

如何为git add*name*创建别名?,git,Git,我正在尝试为git add*name*创建一个别名,因此我可以这样使用它: git a foo 它将调用以下命令: git add *foo* [alias]: a = add 我怎么做?我尝试了a=add*$1*,但没有成功。在主目录中,查找名为.gitconfig的文件,然后添加以下内容: git add *foo* [alias]: a = add 更新: 创建此文件(gitadd.sh) 用法: 将gitadd函数添加到~/.bash\u别名中 使用sourc

我正在尝试为
git add*name*
创建一个别名,因此我可以这样使用它:

git a foo
它将调用以下命令:

git add *foo*
[alias]:
    a = add

我怎么做?我尝试了
a=add*$1*
,但没有成功。

在主目录中,查找名为
.gitconfig
的文件,然后添加以下内容:

git add *foo*
[alias]:
    a = add
更新:

创建此文件(
gitadd.sh

用法:

  • 将gitadd函数添加到
    ~/.bash\u别名中
  • 使用
    source~/.bashrc
  • 像这样使用:
    gitaddname

为了在git别名中计算shell变量(
$1
),它需要是shell git别名,而不是内置别名。这些是前缀为
的别名

git config alias.a '!sh -c "git add  *$1*"'
我会成功的。您还可以直接将该行添加到git配置中,如下所示:

[alias]
    a = !sh -c \"git add *$1*\"
但是,如果您希望支持指定多个文件,则需要制作更复杂的内容,如shell脚本:

#!/bin/bash
#file: $HOME/bin/git-a
newargs=()
for arg in "$@"; do
    newargs+=("*$arg*")
done
git add "${newargs[@]}"
然后确保它是可执行的,并且位于
$PATH
中。如果是,git将找到它并在您键入
git a
时执行它,而无需设置别名


添加其他功能,如将其他标志传递给git add,这是一个练习。

只需alias add,任何其他参数都会被传递。@JonSharpe请注意那些自动添加的星号。哦,我想它们是为了表明这是您想要的,而不是分支名称的一部分。为什么要这样?请注意我想自动添加的星号。这就是我的全部观点。这可以在alias部分中完成吗?没有循环?嗯,我不知道,这是一个不同的方法它是
a=!sh-c \“git add*$1*\”
:)就是这样,谢谢。我发现生成的语法是:
a=!sh-c \“git add*$1*\”
。请将其添加到您的答案中,以备将来参考。许多人喜欢使用.gitconfig文件,而不是通过控制台添加配置。