是否可以在 .gitconfig 中编写多行别名?

Is possible to write a multi-line alias in .gitconfig?

我知道可以使用 &&(和)语句为同一别名执行 运行 多个命令。然而,对于长组合,它会失去可读性。例如:

save = !git status && git add -A && git commit -m \"\" && git push --force && git log && :

我想知道有没有多行的写法? 例如,也许用 {} 来拥抱它。

好吧,显然这是不可能的。因此,我发现提高 git 别名可读性的最佳替代方法是使用反斜杠字符 (\) 来换行。

[alias]
   save = !git status \
        && git add -A \
        && git commit -m \"\" \
        && git push -f \
        && git log -1 \
        && :            # Used to distingue last command from arguments

其他方法是使用函数,但是仍然需要反斜杠。

[alias]
   save = "!f() { \
           git status; \
           git add -A; \
           git commit -m ""; \
           git push -f; \
           git log -1;  \
        }; \ 
        f;  \
        unset f" 

我会避免在配置文件中编写如此广泛的别名。您还可以通过将名为 git-newcommand 的可执行文件添加到 PATHadd new commands。这可以是 Bash 脚本、Python 脚本甚至是二进制文件,只要它是可执行的并以前缀 "git-".

命名即可

如果是脚本,您必须添加正确的 Hashbang:

#!/usr/bin/env python

导出 PATH,例如在您的家中:

export PATH="${PATH}:${HOME}/bin"

这更加模块化、可移植且更易于调试。