我正在尝试为我的简单git add/commit/push创建一个带参数的别名.
我已经看到函数可以用作别名所以我尝试但我没有成功..
在我之前:
alias gitall="git add . ; git commit -m 'update' ; git push"
但我希望能够修改我的提交:
function gitall() { "git add ." if [$1 != ""] "git commit -m $1" else "git commit -m 'update'" fi "git push" }
(我知道这是一个可怕的git练习)
你不能用参数*创建一个别名,它必须是一个函数.你的函数很接近,你只需引用某些参数而不是整个命令,并在其中添加空格[]
.
gitall() { git add . if [ "$1" != "" ] # or better, if [ -n "$1" ] then git commit -m "$1" else git commit -m update fi git push }
*:大多数shell不允许在别名中使用参数,我相信csh和衍生物都可以,但是你不应该使用它们.
如果由于某种原因确实需要使用带参数的别名,可以通过在别名中嵌入函数并立即执行它来破解它:
alias example='f() { echo Your arg was $1. };f'
我看到这种方法在.gitconfig别名中使用了很多.
我在.zshrc文件中使用了这个函数:
function gitall() { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update # default commit message is `update` fi # closing statement of if-else block git push origin HEAD }
这里git push origin HEAD
负责将您当前的分支推送到远程.
从命令提示符运行此命令: gitall "commit message goes here"
如果我们只运行gitall
没有任何提交消息,那么提交消息将update
如函数所述.