Bashスクリプトでgit Interactive rebaseを使用する

Bashスクリプトでgit Interactive rebaseを使用する

次のように、前のコミットに未段階の変更を適用するために頻繁に実行される一連のGit操作を自動化するbashスクリプトを作成したいと思います.

  • 変更を非表示にします。
  • インタラクティブなリベースを入力してください。
  • 問題のあるコミットを編集します。
  • それに隠しを適用しなさい。
  • リベースを完了します。

問題は、これらのいくつかがVimを開き、bashスクリプトを使用してファイルを編集/作成する方法がわからないことです。私はこれを手動でしたくありません。

bashを使ってVimで編集を自動化する方法はありますか? Vimがデフォルトエディタではない場合を扱うより良い方法はありますか?

ベストアンサー1

私の考えでは、VIMは常にgitで説明メッセージを入力すると開かれるようです。 "-m"オプションを使用すると、関連するgitコマンドにメッセージを提供することでこの問題を回避できます。

たとえば、次を参照してください。 git stash --help

...
git stash store [-m|--message <message>] [-q|--quiet] <commit>
...

コメントを明確にした後の追加情報:

VIMには非対話型の「vim -e」モードがあります。 bashで "ex"コマンドを実行しても機能します。しかし、まだvimコマンドをパイプで接続する必要があります。 git rebaseを呼び出す前に$ EDITOR envを乱用すると、トリックを実行する可能性があります(自動モードの場合は-s)。

export EDITOR="cat commands.vim | vim -es"

ただし、すでに $EDITOR env を乱用している場合は、別の bash スクリプトを作成してファイルを変更し、それをエディタとして使用することもできます。

export EDITOR="/path/to/your/script/"

とにかく、後で$EDITORをリセットすることを忘れないでください。

おすすめ記事