mcpField
G
git-commit

git-commit

github.com/ilteoood開発2548 回インストール6 日前に更新
リポジトリ

git-commit について

Conventional Commits 形式で意味の明確な Git コミットを作成するスキルです。実際の差分からタイプ、スコープ、説明を決め、ステージ方法と Git の安全ルールも案内します。

主な機能

  1. 01ステージ済み差分または作業ツリー差分の分析
  2. 02コミットタイプ、スコープ、説明の選定
  3. 03ステージ方法とメッセージ形式の案内
  4. 04機密情報と破壊的コマンドへの安全対策

活用シーン

  1. 01コード変更から意味の明確なコミットを準備
  2. 02コミットタイプとスコープの選択
  3. 03コミット前の Git 安全確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ilteoood/harness --skill git-commit

インストール後、Claude Code で/git-commitを入力して読み込まれたか確認します。

詳細

Conventional Commits による Git コミット

概要

Conventional Commits 仕様を使用して、標準化されたセマンティックな git コミットを作成します。実際の差分を分析して、適切なタイプ、スコープ、メッセージを判断します。

Conventional Commit の形式

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

コミットのタイプ

タイプ目的
feat新機能
fixバグ修正
docsドキュメントのみ
styleフォーマット/スタイル(ロジック変更なし)
refactorコードのリファクタリング(機能追加/修正なし)
perfパフォーマンス改善
testテストの追加/更新
buildビルドシステム/依存関係
ciCI/設定の変更
choreメンテナンス/その他
revertコミットの取り消し

破壊的変更

# Exclamation mark after type/scope
feat!: remove deprecated endpoint

# BREAKING CHANGE footer
feat: allow config to extend other configs

BREAKING CHANGE: `extends` key behavior changed

ワークフロー

1. 差分の分析
# If files are staged, use staged diff
git diff --staged

# If nothing staged, use working tree diff
git diff

# Also check status
git status --porcelain
2. ファイルのステージング(必要な場合)

何もステージングされていない場合、または変更を別の方法でグループ化したい場合:

# Stage specific files
git add path/to/file1 path/to/file2

# Stage by pattern
git add *.test.*
git add src/components/*

# Interactive staging
git add -p

シークレットをコミットしないでください(.env、credentials.json、秘密鍵)。

3. コミットメッセージの生成

差分を分析して、以下を判断します:

  • タイプ: これはどのような種類の変更ですか?
  • スコープ: 影響を受ける領域/モジュールは何ですか?
  • 説明: 何が変更されたかの 1 行の要約(現在形、命令形、72 文字未満)
4. コミットの実行
# Single line
git commit -m "<type>[scope]: <description>"

# Multi-line with body/footer
git commit -m "$(cat <<'EOF'
<type>[scope]: <description>

<optional body>

<optional footer>
EOF
)"

ベストプラクティス

  • 1 コミットにつき 1 つの論理的な変更
  • 現在形: 「added」ではなく「add」
  • 命令形: 「fixes bug」ではなく「fix bug」
  • 課題の参照: Closes #123、Refs #456
  • 説明は 72 文字以内に収める

Git 安全プロトコル

  • git config を絶対に更新しない
  • 明示的な要求がない限り、破壊的なコマンド(--force、hard reset)を絶対に実行しない
  • ユーザーが求めない限り、フックを絶対にスキップしない(--no-verify)
  • main/master への force push を絶対に行わない
  • フックが原因でコミットが失敗した場合は、修正して新しいコミットを作成する(amend しない)

コメント