git-commit
差分を読ませ、関係するファイルだけをステージさせ、Conventional Commits の形のメッセージで git commit まで実行させる。変更が混ざっていれば複数のコミットに分けさせる。push や履歴の書き換えはさせない
npx skills add github/awesome-copilot/git-commit入れる前にこのスキルがすること・注意点・SKILL.md の原文を確かめてください。解析は安全性の判定ではありません。
- インストール
- 47,830
- 実用度
- 18
- GitHub star
- 40,874
- 最終更新
- 2026/11/6
頼み方の例
そのままコピーして使えますgit-commitスキルを使って、いまの変更をコミットしてください。変更が混ざっていれば論理的な単位に分けてください。コミットの前に、ステージしたファイルの一覧と各メッセージを見せてください。push はしないでください。
対象のファイルや状況は、ご自身の作業に合わせて置き換えてください。
このスキルがすること
SKILL.md の記述から機械的に抽出- シェルコマンドを実行する記述があります
これは安全性の判定ではありません。 SKILL.md にそう書かれているという事実だけを並べています。実際に問題があるかは使い方と文脈で決まるため、当サイトでは断定しません。導入前に SKILL.md の原文を確認してください。
SKILL.md の規模
コードブロックの言語: bash、text
この解説は再確認中です。 2026年11月7日に原本(SKILL.md)が更新されており、以下の解説が現在の内容と合っていない可能性があります。最新の内容は GitHub の SKILL.md を確認してください。
いつ使うか
エージェントに、メッセージを書くところからコミットの実行まで任せたいときに使います。説明文によると、コミットしたいとき、変更を複数のコミットに分けたいとき、/commit と打たれたとき、Conventional Commits の形を求められたときに呼ばれます。
GitHub の awesome-copilot に収録されたスキルで、差分を調べ、関係するファイルをステージし、メッセージを書き、git commit を流すところまでが範囲です。
- 手順
- 6 段
- 種別(type)の表
- 11 種
- 1 行目の上限
- 72 文字
- 同梱ファイル(2026-10-23 時点)
- 0 件
6 段の手順
- リポジトリの決まりを読むcommitlint の設定、
CONTRIBUTING.md、git log --oneline -10 - 変更を調べる
git status --porcelain、git diff --staged、git diff - ファイルをステージする1 つのコミットに 1 つの論理的な変更
- メッセージを書く種別・範囲・要約を差分から決める
- コミットする段落ごとに
-mを分ける - 結果を確かめる
git log -1 --statとgit status --porcelain
最初の段で見つけたリポジトリの決まりが、このスキルの規則と違うときは、リポジトリの決まりに従います。変更が何も無いときは、そう伝えて空のコミットを作りません。
メッセージの形
形は <type>(<scope>): <summary> の 1 行に、任意の本文と末尾(footer)が続きます。範囲を省くなら <type>: <summary> です。
- 要約は命令形で書く。「add」であって「added」や「adds」ではない
- 1 行目は 72 文字以内で、末尾に句点を付けない
- 本文には、何を変えたかと、なぜ変えたかを書く
- 末尾は
Refs: #456やCloses #123の形。Git が trailer として読むのはToken: valueの形だけ
種別の表は feat・fix・docs・style・refactor・perf・test・build・ci・chore・revert の 11 行です。本文は、Conventional Commits の仕様が決めているのは feat と fix だけで、ほかは Angular の流儀(@commitlint/config-conventional)から来ている、と正確に書き分けています。リポジトリに独自の一覧があればそちらを使います。
互換性を壊す変更は、コロンの前に ! を置くか、BREAKING CHANGE: の末尾を付けます。大文字で書き、BREAKING-CHANGE: も正しいとしています。
混ざった変更を分ける
ステージ済みのファイルに別の変更が混ざっていれば、先に git reset -q -- でその分を外し、このコミットの分だけを git add -- で載せ直します。ステージの段には、エージェントが詰まりやすい点が具体的に書かれています。
- glob は引用符で囲む囲まないとシェルが展開し、下の階層のファイルが拾われない
git add -pと-iを使わない人の入力を待って止まる- 衝突を解いたら
git add --resolved解いたファイルだけを載せる。衝突の印が残っていれば止まる - 載せた一覧を確かめる
git diff --staged --name-only。.env・credentials.json・秘密鍵を入れない
シェルを選ばない書き方
コミットは、段落ごとに -m を分けて渡します。Git が段落の間に空行を入れるので、改行を含む文字列を組む必要がありません。本文は、この形なら Bash でも PowerShell でも動くとしています。長いメッセージは一時ファイルに書いて git commit -F で渡します。
使わないほうがいいとき
- メッセージだけが欲しい説明文が名指しで除外している。書くだけなら caveman-commit
- push や PR を作りたい説明文が範囲外としている
- rebase や履歴の整理説明文が範囲外としている。安全の決まりでも禁じている
- コミットの前の検査を入れたいフックの設定は setup-pre-commit の担当
メッセージを書かせるだけで、コミットは自分でしたいなら caveman-commit が合います。こちらは git commit を実行せず、ステージもしません。
同じ awesome-copilot には、メッセージだけを書く commit-message-storyteller もあります。その説明文は、ステージとコミットはこの git-commit に任せるよう書いています。
注意点
コミットは実行される
frontmatter の allowed-tools は shell(git:*) です。allowed-tools は道具を絞る設定ではなく、呼ばれた回に確認なしで使ってよい道具を前もって宣言するものです。ほかの道具も使えますし、git の命令は確認なしで走り得ます。
安全の決まり
本文の末尾に、してはいけないことがまとめてあります。
- Git の設定を変えない
- 言われない限り
--no-verifyを使わない。フックは.git/hooksにも Git の設定にもあり得る - フックで失敗したら、直してステージし直し、同じ
git commitをもう一度流す。直前のコミットを変える--amendは使わない - 言われない限り履歴を変えない。
git reset --hard、git rebase、試験的なgit historyを使わない - 言われない限り push しない。既定のブランチに force push しない
フックの失敗を --amend で繕わない、という決まりは実務的です。失敗したコミットは作られていないので、--amend は 1 つ前の無関係なコミットを書き換えてしまいます。
秘密のファイルを入れない決まりは、目で確かめる手順に頼っている
.env や秘密鍵を入れないための仕組みは、ステージした一覧を確かめる手順だけです。.gitignore の設定や検出の道具は使いません。リポジトリの側でも .gitignore を整えておくのが安全です。
git add --resolved は新しい Git が要る
本文の compatibility 欄は、git add --resolved には Git 2.56 以降が要る、と書いています。古い Git では、衝突を解いたあとのこの手順が失敗します。
対応エージェントの明記が無い
awesome-copilot の README が案内するのは、GitHub Copilot の CLI と VS Code での入れ方です。Claude Code や Codex の名前は出てきません。本文は Copilot に固有の書き方を使っていないので、ほかのエージェントでも読める内容です。ライセンスは MIT です。
インストール数の推移
日次で記録9月18日 〜 11月7日(49日分)
インストール数と 1 日あたりの増加は Skillselion が に集計した値です。上流の更新は数日おきなので、前日比ではありません。GitHub star と最終更新は に GitHub から取得しました。
併用すると強いスキル
caveman-commit
コミットメッセージを Conventional Commits で、意図だけに絞って書かせる。AI の署名も入れない
git-guardrails-claude-code
Claude Code に、危ない git の命令(push、reset --hard、clean -f、branch -D、checkout .)を実行させないフックを入れさせる。命令の文字列を照らして止める簡単な仕組みで、抜け道は残る
setup-pre-commit
コミットのたびに整形・型の確認・試験を自動で走らせる設定を入れさせる。Husky と lint-staged と Prettier を入れ、最後にその設定自体をコミットして動くことを確かめる
よくある質問
変更が大きいとき、自動で分けてくれますか
1 つのコミットに 1 つの論理的な変更を載せるよう、本文が決めています。ステージ済みのものに別の変更が混ざっていれば外してから、このコミットの分だけを載せます。分け方はエージェントの判断なので、分けた案を先に見せてもらうと確実です。
リポジトリ独自のコミットの規約がある場合は
最初の段で commitlint の設定、CONTRIBUTING.md、直近 10 件のコミットを読み、このスキルの規則と違えばリポジトリの決まりを使う、と本文にあります。種別の一覧も、リポジトリに独自のものがあればそちらが優先です。
フックで失敗したらどうなりますか
Git はコミットを作らないので、問題を直し、ファイルをステージし直して、同じ git commit をもう一度流します。--no-verify で飛ばすのは、利用者に言われたときだけです。--amend は前のコミットを変えるので使わない、と本文は書いています。
Windows の PowerShell でも動きますか
本文は、段落ごとに -m を分ける書き方が Bash でも PowerShell でも動くとしています。改行を含む文字列を組まないので、シェルごとの引用符の違いで崩れにくい形です。長いメッセージは一時ファイルに書いて -F で渡します。