Estou tentando fazer um alias com parâmetro para meu git add / commit / push simples.
Eu vi que Function poderia ser usado como apelido, então tentei, mas não consegui.
antes de eu ter:
alias gitall="git add . ; git commit -m 'update' ; git push"
Mas eu quero ser capaz de modificar meus commits:
function gitall() {
"git add ."
if [$1 != ""]
"git commit -m $1"
else
"git commit -m 'update'"
fi
"git push"
}
(eu sei que é uma prática git terrível)
csh
faz, mas não tem nenhuma função. (Não sei se não há funções porque os aliases podem receber parâmetros, ou se os aliases usam parâmetros porque não há funções, ou o quê.)gitall "my commit message"
? ou você chamaria degitall('my commit message')
gitall "my commit message"
.getall() {
sem o anteriorfunction
- claro, é legal de qualquer maneira no zsh, mas essa única alteração tornará isso compatível com todos os shells compatíveis com POSIX.git commit -m "${1:-update}"
(uma expansão de parâmetro com um padrão fornecido), então você não precisaria daif
instrução.Se você realmente precisar usar um alias com um parâmetro por algum motivo, pode hackea-lo incorporando uma função em seu alias e executando-a imediatamente:
alias example='f() { echo Your arg was $1. };f'
Vejo que essa abordagem é muito usada em aliases .gitconfig.
fonte
example
.alias example='(){ echo Your arg was $1. ;}'
Usei esta função no arquivo .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 }
Aqui
git push origin HEAD
é responsável por empurrar seu branch atual no remoto.No prompt de comando, execute este comando:
gitall "commit message goes here"
Se apenas executarmos
gitall
sem nenhuma mensagem de confirmação, a mensagem de confirmação seráupdate
como a função disse.fonte
"git add ."
e os outros comandos entre"
são apenas strings para bash, remova o"
s.Você pode querer usar
[ -n "$1" ]
em seu corpo if.fonte
Tentei a resposta aceita (Kevin), mas estava obtendo o seguinte erro
defining function based on alias `gitall' parse error near `()'
Portanto, mudei a sintaxe para isso, com base no problema do git, e funcionou.
function gitall { git add . if [ "$1" != "" ] then git commit -m "$1" else git commit -m update fi git push }
fonte