Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Como criar um alias para o ciclo básico do git?

Estou tentando criar um alias para a seguinte sequência de comandos:

  • add (todos os arquivos)
  • commit (mensagem)
  • push origin master

Tentei o seguinte alias

upl = !git add -A && git commit -m "$1" && git push origin master

para ser utilizado da seguinte maneira:

git upl "Formulario"

Mas não funciona, o bash não pega a string enviada e concatena no comando, no local do $1, ele usa a mensagem pra outra coisa que não, sei lá acho que pra branch. Veja o log do erro:

$ git upl "Formulario"
[master a78550c] Formulario
 1 file changed, 1 insertion(+), 1 deletion(-)
error: src refspec Formulario does not match any.
error: failed to push some refs to 'https://github.com/Anderson404santos/curso_git.git'

Ao executar um git log:

cpd@INFORMATICA-01 MINGW64 /c/wamp/www/alura_git/curso_git (master)
$ git log
commit eb03bfd1d5738fae94bef79d34ce4f4c1ed57b73
Author: Anderson <anderson404santos@gmail.com>
Date:   Thu Feb 9 12:33:22 2017 -0200

    Formulario

Outro detalhe, quando coloco mais uma palavra no parametro:

cpd@INFORMATICA-01 MINGW64 /c/wamp/www/alura_git/curso_git (master)
$ git upl "Formulario Criado"
error: pathspec 'Criado' did not match any file(s) known to git.
5 respostas
solução!

Fala aí Anderson, blz?

Tenta fazer o seguinte:

git config --global alias.upl '!func(){ git add -A && git commit -m "$1" && git push -q; }; func'

Para usar você faz:

git upl "Sua mensagem aqui"

Espero ter ajudado e bons estudos.

Funcionou perfeitamente, obrigado.

De nada Anderson! =)

Só gostaria de saber o que é a flag -q e como ela ajudou a resolver o problema na hora de fazer o push

Fala aí Anderson, o -q no push é só para suprimir as mensagens. Na verdade nem foi ele que ajudou a resolver o problema. Foi a declaração da função.