git-cx
2025-01-03 11:05:35 gitgitのコミットメッセージを、コマンドラインで選択しながら構築していくツール
Conventional Commits ☐↗ を意識したコミットメッセージを構築するためのツールです。
スクリーンショット
型の選択
スコープの選択
その他の入力
git log
使い方
設定の生成
git cx gen
Conventional Commits ☐↗ の型を含む git-cx
の設定をファイルとして出力します。
生成された設定を書き換えて、自身の使う複数のリポジトリー共通の設定としたり、リポジトリーごとに異なる設定にしたりすることもできます。
git cx gen --emoji
で絵文字付きのテンプレートも生成できます。
生成された設定ファイル
|
|
※ このサイトでは :
sparkles:
が ✨ に変換されるなど、絵文字向けの文字列が絵文字に変換されています。
型以外の設定
headerformat
コミットメッセージの1行目の構成を指定することができます。
例
|
|
各コンポーネントは {{.hoge}}
の形式で記述します。
{{}}
の外にある個所は固定の文字列として扱われます。
コンポーネント
生成された設定ファイルの2行目にある headerformathint
には、記述できるコンポーネントが列挙されています。
(このフィールドは、それ自身は何か設定をしているわけではありません)
|
|
.type
- Conventional Commits ☐↗ の型(type)
- 選択した型に置き換わります。
.scope
- スコープ(scope)
.scope_with_parens
- スコープ(scope) を
()
で囲んだもの - ただし、スコープが空欄だった場合は
()
含めて空白に置き換わります。
- スコープ(scope) を
.bang
- BREAKING CHANGEフッターがある場合に
!
に置き換わります。 - ※BREAKING CHANGEフッターは、設定ファイル末尾にある
usebreakingchange
がtrue
の場合にのみ入力可能です。
- BREAKING CHANGEフッターがある場合に
.emoji
- 型ごとに設定できる
emoji
の文字列に置き換わります。 - ※上記の設定ファイル例では、✨ のように絵文字に変換されていますが、本来の記述内容は
:
sparkles:
のようになっています。
- 型ごとに設定できる
.emoji_unicode
- 型ごとに設定できる
emoji
を絵文字に変換したものに置き換わります。 - Emoji List ☐↗ の “CLDR Short Name” にあるスペースをアンダースコア
_
に置き換えたものを半角コロンで囲みます。 - 例:
:
broken_heart:
-> 💔
- 型ごとに設定できる
.description
git-cx
では、型、スコープについで入力された、タイトル(description)に置き換わります。
denyemptytype
true
を指定することで、型を必須にします。
denyadlibtype
true
を指定することで、設定ファイルにある型しか選択できなくします。
usebreakingchange
true
を指定することで、BREAKING CHANGEフッターの入力ができるようになります。
設定ファイルの置き場
生成された設定ファイル .cx.yaml
を以下のいずれかの場所においておきます。
- gitconfig ([cx] rule={PATH_FROM_REPOS_ROOT})
- ワークツリーのルート
- 以下のディレクトリー
- {CONFIG_DIR}/git-cx/.cx.yaml
- Windows: %appdata%\git-cx.cx.yaml
- (see https://cs.opensource.google/go/go/+/go1.17.3:src/os/file.go;l=457 ☐↗ )
- git-cx があるディレクトリー
使い勝手が良いのは、2 か 3 でしょうか。
自分のメッセージのスタイルを一貫させたい場合は3が合っているでしょう。
一方で、共同開発する場合に設定を合わせたい場合は、2のように、そのリポジトリーに設定ファイルを含めてしまうのが良いでしょう。
スコープの候補
スコープはリポジトリー毎に内容が異なるのと、途中で増えることも想像されるため、型とは違い予め決めておく方式とはしませんでした。
入力されたスコープを記録しておき、それを候補として表示するようにしています。
ただし、予め、スコープの記録をするファイルを gitconfig で指定しておきます。
|
|
scopes
には、リポジトリーのルートからのパスで指定します。
このファイルには git-cx を介してコミットをした際のスコープが記録され、結果的にスコープの候補となります。
ダウンロード
- 📄 Hugo テーマ 6. Render Hook2025-01-03 11:06:22#5 の題材を、今度は Render Hook という機能を使って実装します。
- 📄 git-cx2025-01-03 11:05:35gitのコミットメッセージを、コマンドラインで選択しながら構築していくツール
- 📄 Go言語でのスタックトレースを簡素化する2024-08-16 10:26:05Go言語のパッケージ: 冗長なスタックトレースを簡素化して出力します。
- 📄 Goでテーブル駆動のベンチマークをとる方法2024-08-16 10:26:05公式に記載ありますが、まとめてみます。
- 📄 slog-handler-guide2024-08-16 10:26:05slog-handler-guide の解説
- 📄 Popcorn2024-08-16 10:26:05自分がよく使うコマンドを登録して呼び出すための Vim script
- 📄 Ergodox EZ キーボードレイアウト2024-08-16 10:26:05JISレイアウトを参考にした、Ergodox EZ のキーボードレイアウト
- 📄 pomi2024-08-16 10:26:05ポメラSyncされたメモを操作するツール →後継のソフトウェアpmsyncを使ってください。
- 📄 Keychron K15 Pro2024-08-15 21:30:59買ったので雑に感想でも書いてみます。
- 📄 Vim LSP メモ2024-08-15 21:30:59忘れそうな内容をメモ