4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Visual StudioでGitのコミットメッセージにテンプレートが使えないから考えた

Last updated at Posted at 2017-11-13

問題

VisualStudioで、コミットメッセージの見やすさの向上を図りたい。
しかし、VisualStudioでは、Gitのコミットメッセージでテンプレート機能が使えない
(ちなみに、VSCodeだと使える。この記事とかを参考に設定すれば、2017/07辺りでは使えた。)

課題

  • Visual Studioの改善を待つ。(根本的にはこの姿勢。MSさん早めにお願いします。)
  • 別のエディタを使う。これはC#を使って開発している関係上、他の作業が面倒になるので避けたい。
  • 何かツールを使う。[本案を採用]

というわけで、

何かツールはないモノかと探してみたが、、、見つからないorz 調査力不足を呪う。
そういうことで、簡便な方法で自作することにした。

どんなツールか

  • 実行すると、クリップボードにテンプレートがコピーされる。基本的にbatのお仕事。batだけだとコマンドラインが開いて嫌だったので、VBSも少し使用する。
  • それを貼り付け。ここはwindowsの機能。
  • ツールにショートカットキーを割り当てる。以上。

ソース(というほどのものでもない)

まず、コミットメッセージのテンプレート。

ココを参考にした。
フォルダを作って、その中に「.gitmessage.txt」として保存。(名前は任意。)

[issue: #xxxx] {コミットの概略}

what happened
{コミットの詳細}

つぎに、bat。

バッチがあるディレクトリに移動して、テンプレート(「.gitmessage.txt」がテンプレート)の中身をクリップボードにコピーする処理。
batも先に作ったフォルダに配置する。

cd /d %~dp0
clip < .gitmessage.txt

最後に、vbs。

batだけだと、起動するたびにコマンドプロンプトが開くのが面倒だったので、VBS経由でbatを起動するようにした。
その際、コマンドプロンプトが開か邇ようにする処理を行っている。

Dim oShell
Dim off
Dim objFs

Set oShell = WScript.CreateObject ("WSCript.shell")
set objFs = createObject("Scripting.FileSystemObject")  

off = objFs.getParentFolderName(WScript.ScriptFullName)
oShell.CurrentDirectory = off

oShell.run "git_commit_message.bat",0

Set oShell = Nothing

そして、ショートカット作成⇒ショートカットキー登録⇒デスクトップに配置

vbsのショートカットを作成する
そして、ショートカットにショートカットキーを割り当てて
デスクトップに配置する。

完成

というわけで、一応の目的は達成された。

得たもの

  • 若干だが、コミットメッセージに統一感が出て、見やすい。
  • vbsを初めて書いた体験。
  • ショートカットキーが凄く便利だという体験。これが一番役立っている。

よく使うアプリはショートカットキーに割り当てておく方が、作業効率が格段に良くなる。
あと、自作したアプリが定型文が欲しいときに地味に役立っている。(但し、ご使用は自己責任で。)

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?