如何为git add * name *制作别名?

时间:2016-05-05 15:31:17

标签: git

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

git a foo

它会调用以下内容:

git add *foo*

我该怎么办?我试过了a = add *$1*,但它不起作用。

2 个答案:

答案 0 :(得分:3)

为了在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,就可以作为练习了。

答案 1 :(得分:0)

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

[alias]:
    a = add

更新:

创建此文件(gitadd.sh

gitadd() {
    for ARG in "$@"
    do
        git add "./*$ARG*"
    done
}

用法:

  • 将gitadd功能添加到~/.bash_aliases
  • 使用source ~/.bashrc
  • 重新加载以生效
  • 像这样使用它:gitadd name