🦈

git commit -vの使い方

2024/10/06に公開

エンジニアもすなる技術記事といふものを、初心者もしてみむとてするなり。

-vオプションとは

diff(変更差分)をエディタで確認しながらコミットメッセージが書けるつよつよ機能です。

元々、Gitリポジトリにファイルを追加するとき、面倒くさくてgit add .を多用しがちだったんですけど、

  • 何を変更したのかちゃんと確認してないまま追加するのやばくない?
  • でも毎回git diffで確認するのも手間じゃない?
    ってことで、それらをまるっと解決してくれるオプションをさる方よりお勧めして頂いたので、試してみました。

公式ドキュメントの内容

Deeple翻訳「-v --verbose コミットメッセージテンプレートの一番下に、HEADコミットとコミットされる内容との差分を表示します。 この diff 出力には先頭に # がつかないことに注意。 この diff 出力はコミットメッセージの一部にはなりません。 git-config[1] の commit.verbose 設定変数を参照ください。 二回指定した場合は、コミットされるファイルとワークツリーのファイルとの差分を表示します。」

......あ、はい。
使い方が良くわからなかったので実際に試してみました。

実際の使い方

使用環境

  • VS Code内のターミナル(zsh)
git add .
git commit -v

ここで、ターミナル内に以下のようなdiffが表示されました


# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch 現在のブランチ名
# Changes to be committed:
# modified:   変更したファイル1
# modified:   変更したファイル2
# new gile:   追加したファイルA
#
# ------------------------ >8 ------------------------
# Do not modify or remove the line above.
# Everything below it will be ignored.
diff --git a/変更する前のファイル1 b/変更したファイル1
index 変更前のインデックス情報(7桁のアルファベット数字)..変更後のインデックス情報 ファイルモード(6桁の数字)
--- a/変更する前のファイル1
+++ b/変更したファイル1
@@ -1,5 +1,6 @@
 hoge

- hoge
-  ahoge
+- huga
+  hugatotancyou
diff --git a/変更する前のファイル2 b/変更したファイル2

~中略~

-- INSERT --

最上段の# Please enter the commit message for your changes.の上にコミットメッセージを書き、エディタを閉じることで、git commit -mと同じように保存することができます。

そうは問屋がおろさない

しかしなぜかエディターを閉じれなかったんですよね。
VSCodeで行う場合は、Ctrl+X→Y押してEnterでいけるらしいのですが、そもそもそういったコマンドを受け付けてないような感じでした。
Vimではないので、Esc→:wqを入力してももちろんエラー。
ターミナル単独でも同じ現象が起きました。

どうにもならないので、VSCodeのコマンドパレットからパスを通すようにcodeコマンドを導入しました。VSCodeをコマンドライン(ターミナル)から起動するためのコマンドなんだそうです。

VSCodeの設定からコマンドを有効化(macの場合)

  • Ctrl+Shift+Pでコマンドパレットを開く
  • Shell Command: Install 'code' command in PATHと入力して選択
  • 権利者権限を許可

この状態で再びgit commit -vを打つと、エディタがターミナル内ではなく、VSCodeの中で表示されるようになりました!
寧ろこちらの方がテキストエディタ感覚で読めるので、楽ちんですね。

-vオプションに関する記事がすぐに見つからなかったため、初投稿してみました。
多分もっと良い方法ある気がするんで、こころのやさしいかたはぜひ教えてくださいorz

Discussion