Por que os argumentos do meu script bash estão causando um erro?

5

Para facilitar o upload do código para o github, criei um script sh

#commit.sh
git add .
git commit -m 
git push origin master

Mas quando eu o executo dizendo ./commit.sh "comment1 comment2 comment3" , recebo o erro de:

error: pathspec 'comment2' did not match any file(s) known to git.
error: pathspec 'comment3' did not match any file(s) known to git.

O que há de errado e como faço isso funcionar?

    
por Alex Malex 11.03.2013 / 12:13

2 respostas

8

Sempre cite suas variáveis! Mude para

git commit -m ""

e depois

./commit.sh "comment1 comment2 comment3"

funcionará.

    
por Timo Kluck 11.03.2013 / 12:34
3

Você pode combinar vários comandos em uma linha.

git add . && git commit -m "Your commit message" && git push origin master

que é uma boa linha para usar como um comando:

gitpush()
{
git add . && git commit -m "" && git push origin master
}

Se você colocar esse comando no arquivo .bash_aliases , poderá usá-lo da seguinte maneira:

gitpush "finally fixed that long-standing bug"

Este comando funcionará quando todas as etapas funcionarem.

    
por don.joey 11.03.2013 / 12:43