Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Conventional Commitsでコミットログにシンプルな秩序を

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for hidao hidao
September 25, 2026
23

Conventional Commitsでコミットログにシンプルな秩序を

Conventional Commitsとは、コミットログにシンプルな秩序を持ち込むための軽量な規約で、決めているのは実質「1行目を "[scope]: " で書く」ことだけです。
このスライドは v1.0.0に合わせて執筆しました。

Avatar for hidao

hidao

September 25, 2026

Transcript

  1. 自己紹介 ひだお(hidao80) 好きなこと: 情報整理:Markdown-vault × AI 自作ツール開発:PWA / UserScript /

    ブラウザ拡張機能 HN: / ... 活動: 技術記事投稿:Qiita / Zenn / dev.to OSS個人開発:VS Code / Chrome拡張 / PWA モットー: 最適・最小・理性的 / 三方利益 2
  2. きっかけ:コミットログの表記揺れ セッションごとに書き方が変わる 1. Add login feature / ログイン機能を追加 人間とエージェントが混ざる 粒度も語彙も違う

    2. 「何が変わったか」をコードから読み解く羽目に → ※本発表は公式ドキュメント調査に基づくもの 4
  3. 基本構造 要素 type scope description body footer 必須 必須 任意

    必須 任意 任意 内容 変更の種類( feat 、 fix など) 影響範囲。 feat(parser): 短い要約 詳細。前に空行1行 Gitのトレーラー形式 7
  4. type とSemVerの対応 type / 記法 SemVer fix: PATCH feat: MINOR

    または BREAKING CHANGE: docs: chore: など ! 仕様が義務付けるtypeは fix と feat だけ BREAKING CHANGE だけは大文字必須 MAJOR 影響なし 8
  5. 「シンプルな秩序」と呼ぶ理由 覚えることは1行目の形・2つのtype・ ! くらい $ git log --oneline a1b2c3d feat(auth):

    add SSO login d4e5f6a fix: prevent racing of requests b7c8d9e docs: correct spelling of CHANGELOG 変更の種類が一目でわかる ツールがバージョンの上げ方まで判断できる 9
  6. 記述例 feat(lang): add Polish language feat(api)!: send an email to

    the customer when shipped fix: prevent racing of requests Reviewed-by: Z Refs: #123 10
  7. 公式FAQで押さえておきたいこと 大文字/小文字: どちらでもよいが一貫させる revert: revert type+ Refs: フッター推奨 複数typeにまたがる: 可能なら分割

    初期開発: リリース済み前提で運用 全員が規約を使う必要は?: 不要 squashならマージ時にメンテナーが整えられる 11
  8. サービス比較①:検証とsquash 観点 サーバー側検証 時 squash Git GitHub なし (Actionsで検証) PRタイトルを

    既定にできる GitLab Push rules (Premium以上) テンプレート 既定 %{title} Bitbucket なし(アプリ) DC: フック Cloud: マージ時に編集可 単体: commit-msg (ローカル)/ pre-receive (自前サーバー) 13
  9. サービス比較②:リリースと独自記法 観点 GitHub リリース自動化 release-please 独自記法 GitLab Bitbucket semantic-release semantic-release

    (公式プラグイン) semantic-release closing keywords closing patterns Smart Commits Fixes #123 Changelog: (専用なし) (Jira連携) 独自記法はbody・footerに共存できる 14
  10. Git :commit-msgフック npm install -D @commitlint/cli @commitlint/config-conventional echo "export default

    { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js npm install -D husky npx husky init echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg はGitのトレーラーそのもの 注意: --no-verify で素通りできる footer 15
  11. GitLab :Changelogの注意点 テンプレートの既定は %{title} (MRタイトル) 標準のChangelog APIは Changelog: トレーラー で分類

    → Conventional Commitsのtypeは見ていない 両方書くか、semantic-releaseに寄せる squash 20