bashrc関数、git commit -m(スペースを含む)

bashrc関数、git commit -m(スペースを含む)

現在私はこれを持っており、これを使用すると期待どおりに機能しますaddcommit 'test commit'が、そのまま使用するとaddcommit test commit最初の単語だけが表示されますtest。理想的にはその機能を持ってaddcommit test commit実行したいと思います。git add . && git commit -m 'test commit'

addcommit()
{   
    git add . && git commit -m "$1"
}

PS。この場合、どのように機能するのか理解できません"$1"。おそらく、これがどのように機能するのかを理解するための良い出発点になります。

答え1

"$1"使用。 。 。交換"$*"

IFSトラップを完全に避けるには:

addcommit()
{
   local IFS=' '
   git add . && git commit -m "$*"
}

この場合、エイリアスはコミットメッセージにすべての文字を含めるのに役立ちます。

alias addcommit='_m=$(fc -nl -0); git add . && git commit -m "${_m#*addcommit }" #'

addcommit $foo * $bar
# will use the literal "$foo * $bar" message, without expanding it

(bashとksh93で動作)

関連情報