是否可以在 .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
的可执行文件添加到 PATH
来 add new commands。这可以是 Bash 脚本、Python 脚本甚至是二进制文件,只要它是可执行的并以前缀 "git-".
命名即可
如果是脚本,您必须添加正确的 Hashbang:
#!/usr/bin/env python
导出 PATH
,例如在您的家中:
export PATH="${PATH}:${HOME}/bin"
这更加模块化、可移植且更易于调试。
我知道可以使用 &&
(和)语句为同一别名执行 运行 多个命令。然而,对于长组合,它会失去可读性。例如:
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
的可执行文件添加到 PATH
来 add new commands。这可以是 Bash 脚本、Python 脚本甚至是二进制文件,只要它是可执行的并以前缀 "git-".
如果是脚本,您必须添加正确的 Hashbang:
#!/usr/bin/env python
导出 PATH
,例如在您的家中:
export PATH="${PATH}:${HOME}/bin"
这更加模块化、可移植且更易于调试。