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

8

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

save = !git status && git add -A && git commit -m \"$1\" && git push --force && git log && :
有没有多行书写的方法? 也许可以用 {} 包裹起来,例如?
2个回答

17

您可以使用换行转义符(\)来像这样断行:

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

你也可以像这样在函数中放置多个语句:

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

参见: Git Alias - Multiple Commands and Parameters


1
我建议不要在配置文件中编写如此复杂的别名。您也可以通过将名为git-newcommand的可执行文件添加到PATH中来添加新命令。这可以是Bash脚本、Python脚本或二进制文件,只要它是可执行的并以前缀“git-”命名即可。
对于脚本,您需要添加适当的Hashbang
#!/usr/bin/env python

PATH 导出,比如在您的主目录中:

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

这更具模块化、可移植性和易于调试。

1
避免在配置文件中使用过多别名的另一种方法是在配置文件中包含一个别名文件,甚至可以包含多个,例如 [include] \ path = mygitaliases.git; \ path = morealiases.git; - user151841

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接