3

git commit を使用するときに二重引用符を使用するのに少しうんざりしています

git commit -a -m "fix xxx error"

次のようにエイリアスを設定すると:

coam = "!f() { git commit -a -m $1; }; f"

入力すると機能します

git coam fix

としてコミットします

git commit -a -m "fix"

しかし、処理できるコマンドを設定する方法

git commit -a -m "fix xxx error"

入力するだけで

git coam fix xxx error

私はテストします

coam = "!f() { git commit -a -m $*; }; f"

しかし、うまくいきません!

ありがとう!

4

2 に答える 2

10

「二重引用符を使用するのは少しうんざりです」<-しかし、選択の余地はありません。

これがシェルの仕組みです。引数に通常は入力フィールドの区切り文字である文字が含まれている場合(ヒント:IFS環境変数の名前がそのままである理由)、引数として扱われるようにするメカニズムがあります。実行されるコマンドによって。

そして、git commit-mオプションは単一の引数を取ります。これらの二重引用符が必要です。

それを好転させる唯一の方法は、これらの引数を収集する独自の小さなシェルスクリプトを用意することです。

#!/bin/bash
exec git commit -a -m "$*"

上記のスクリプトが呼び出さmygitcmれ、パスにある場合は、次のようにすることができます。

mygitcm my commit message here

あなたの例を引用すると、これはうまくいくと思います:

coam = "!f() { git commit -a -m \"$*\"; }; f"

(もちろん、もう1つの良いアイデアは、説明的なコミットメッセージを作成することです;))

于 2013-01-10T13:04:10.887 に答える
1
function gc { git commit -a -m "$*"; }
于 2021-01-26T01:14:57.523 に答える