エイリアスの "コマンドライン"の終わり以外に余分なパラメータを適用するには、シェルコマンドをスクリプトに入れる必要があります。外部のスクリプト(jdelStrother’s answerなど)で実行することも、インラインシェルスクリプトを使って実行することもできます。
あなたはgit commit
あなたの新しいメッセージを送りか、既存のメッセージや作者を使用できるようにするには-C HEAD
/--reuse-message=HEAD
オプションを使用する-m
を使用することができます(それも作者のタイムスタンプを再利用しますが、あなたは--date=…
とのことリセットされます)。これらのオプションを使うと、コミットメッセージ用のエディタを開くことができなくなります。この小さなスクリプトのコアは条件付きパラメータ展開のペアがある
git config --global alias.sync '!sh -c '\''git commit --amend --date=today ${1+-m} "${1---reuse-message=HEAD}" && git rebase master'\'' -'
:ここ
それは「インライン」シェルスクリプトとしてであるあなたが余分にそれを呼び出す
${1+-m} "${1---reuse-message=HEAD}"
パラメータ(つまり、あなたの置き換えログメッセージ)は、2つのシェルワード:-m "<your new log message>"
に展開されます。余分なパラメータを指定しないと、1つの単語("--reuse-message=HEAD"
)に展開されます。
末尾のダッシュも重要です。どのシェルワードでもかまいませんが、シェルはシェルを使用して$0
パラメータ(通常はデフォルト値を持つため、条件付き展開自体には役に立たない)を初期化するため、何かが存在する必要があります。
私が誤解し、あなたが実際にあなたが単一の拡張${1+-m "$1"}
代わりの展開のペアを使用し、その後、追加のパラメータを設定していない場合、エディタを表示したい場合。
可能な複製http://stackoverflow.com/q/3321492/923794 – cfi