git-commit-split

Installation
SKILL.md

分割の考え方

ファイル単位ではなく 論理的な変更単位 でコミットを分ける。 1つのファイルに複数の目的の変更が含まれる場合はhunk単位で分割する。

例: ファイルA に機能αの変更と機能βの変更、ファイルB に機能αの変更と機能γの変更がある場合 → コミットは「機能α」「機能β」「機能γ」の3つに分ける。ファイル単位の3つ(A, B)ではない。

実行手順

  1. git diff --cached --stat で全体像をつかむ。
  2. git diff --cached で全差分を読み、論理的な変更単位(目的・機能ごと)にコミット候補をリストアップする。
  3. 候補ごとにコミットする。分割方法はケースに応じて使い分ける:
    • ファイルまるごと同じ単位に属する場合: git commit -m "<message>" -- <paths...> でコミット。
    • 1ファイル内に複数単位の変更が混在する場合: まず git reset HEAD -- <対象ファイル> でそのファイルをunstageし、git add -p -- <対象ファイル> でhunk単位(y/n)で必要な変更だけstageしてからコミットする。残りのhunkは次のコミットで再度stageする。
  4. コミットのたびに git diff --cached --stat で残りのstage差分を確認する。
  5. 最後に git status --short --branch を確認し、stageが空であることを確認する。

ルール

Installs
2
Repository
thr3a/skills
First Seen
13 days ago
git-commit-split — thr3a/skills