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:-> 💔
- 型ごとに設定できる
.descriptiongit-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 を介してコミットをした際のスコープが記録され、結果的にスコープの候補となります。
ダウンロード
- 📄 yaya2025-07-12 15:07:18暇つぶし弾よけゲーム
- 📄 Hugo テーマ 6. Render Hook2025-01-03 11:06:22#5 の題材を、今度は Render Hook という機能を使って実装します。
- 📄 git-cx2025-01-03 11:05:35gitのコミットメッセージを、コマンドラインで選択しながら構築していくツール
- 📄 Popcorn2024-08-16 10:26:05自分がよく使うコマンドを登録して呼び出すための Vim script
- 📄 Goでテーブル駆動のベンチマークをとる方法2024-08-16 10:26:05公式に記載ありますが、まとめてみます。
- 📄 Go言語でのスタックトレースを簡素化する2024-08-16 10:26:05Go言語のパッケージ: 冗長なスタックトレースを簡素化して出力します。
- 📄 slog-handler-guide2024-08-16 10:26:05slog-handler-guide の解説
- 📄 pomi2024-08-16 10:26:05ポメラSyncされたメモを操作するツール →後継のソフトウェアpmsyncを使ってください。
- 📄 Ergodox EZ キーボードレイアウト2024-08-16 10:26:05JISレイアウトを参考にした、Ergodox EZ のキーボードレイアウト
- 📄 GOEXPERIMENT + Build Constraints2024-08-15 21:30:59例えば GOEXPERIMENT=rangefunc の場合にビルドしたい/したくない場合の書き方