在我的 中.bashrc
,我有别名:
#Custom aliases
alias gta="git add -A"
alias gtc="git commit -m 'Added files' "
我想创建一个执行命令的新别名git push origin <branch name>
。早些时候这很容易,因为它总是设置为git push origin master
。
但现在,GitHub 已更改master
为main
适用于 2020 年 10 月之后创建的所有存储库。现在我想要的是我想设置一个别名gtp
,它要求我提示使用main
或master
。根据选择,我希望执行适当的命令。
PS:我知道我们可以创建2个别名,一个 for master
,一个 for main
,但只是出于好奇,如何解决上述问题?
答案1
您可以在您的.bashrc
:
alias gtp=f
f() {
arg="$1"
if [[ -z "$arg" ]] || [[ "$arg" != main && "$arg" != master ]]; then
echo "Bad argument"
else
git push origin "$arg"
fi
}
然后
~$ . .bashrc
$ gtp
Bad argument
$ gtp foo
Bad argument
$ gtp main
<git doing it's thing>
$ gtp master
<git doing it's thing>
f() {
arg="$1"
case $arg in
main|master)
git push origin "$arg"
;;
*)
echo error >&2
esac
}