コミットメッセージを必要とする Git タスクを自動化する方法は?

コミットメッセージを必要とする Git タスクを自動化する方法は?

Git タスクを自動化するスクリプトを作成しています。これを手動で実行すると、コミットメッセージを編集するために git が vim を開く箇所がいくつかあり、 と入力する必要があります:wq。vim が開いている場合にのみ、スクリプトからこれらのキーストロークを事前に送信する方法はありますか? あるいは、そもそも vim を開かないようにする方法はありますか?

私はtcshを使用しています。

答え1

そもそも Vim を開かないようにすることもできます。

--message=<message>その 1 つの方法は、 の(または-m <message>、略して ) オプションを使用することですgit subtree pull。欠点は、git によって提供されるデフォルトのメッセージを使用できず、独自のメッセージを作成する必要があることです。利点は、git がコミット メッセージを必要とするほぼすべての場所でこれが機能することです。

もう一つの選択肢はするデフォルトのメッセージを使用するには、git が開く「エディター」を cat に変更します。次の操作の直後に、必ず元に戻すようにしてください。

git config --local core.editor /path/to/cat
git subtree pull --prefix foo/bar/path repo branch --squash
git config --local core.editor /path/to/vim-or-other-editor

この方法の利点は、git が提供するデフォルトのメッセージを使用できることです。欠点は、デフォルトのコミット メッセージが空の場合 (プレーンな を実行する場合が一般的)、これが機能しないことですgit commit

関連情報