process-commit

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
git-sequential-stage
はhunk単位の部分的なステージングを実行するためのツールです。
git-sequential-stage
を用いて大きな変更を論理的な単位に分割してコミットしてください。
bash
undefined
git-sequential-stage
是一款用于按hunk单元执行部分暂存的工具。 请使用
git-sequential-stage
将大型变更拆分为逻辑单元后提交。
bash
undefined

hunk番号を指定して部分的にステージング

指定hunk编号进行部分暂存

git-sequential-stage -patch="path/to/changes.patch" -hunk="src/main.go:1,3,5"
git-sequential-stage -patch="path/to/changes.patch" -hunk="src/main.go:1,3,5"

ファイル全体をステージング(ワイルドカード使用)

暂存整个文件(使用通配符)

git-sequential-stage -patch="path/to/changes.patch" -hunk="src/logger.go:*"
git-sequential-stage -patch="path/to/changes.patch" -hunk="src/logger.go:*"

複数ファイルの場合(ワイルドカードと番号指定の混在も可能)

多文件场景(可混合使用通配符和编号指定)

git-sequential-stage -patch="path/to/changes.patch"
-hunk="src/main.go:1,3"
-hunk="src/utils.go:"
-hunk="docs/README.md:
"
undefined
git-sequential-stage -patch="path/to/changes.patch"
-hunk="src/main.go:1,3"
-hunk="src/utils.go:"
-hunk="docs/README.md:
"
undefined

実行手順

执行步骤

Step 0: リポジトリルートに移動

Step 0: 移动到仓库根目录

Step 1: 差分を取得

Step 1: 获取差异

bash
git ls-files --others --exclude-standard | xargs git add -N
bash
git ls-files --others --exclude-standard | xargs git add -N

より安定した位置特定のため

为了更稳定地定位

git diff HEAD > .claude/tmp/current_changes.patch
undefined
git diff HEAD > .claude/tmp/current_changes.patch
undefined

Step 2: 分析

Step 2: 分析

hunk単位で変更を分析し、最初のコミットに含めるhunkを決定してください
  • hunkの内容を読み取る: 各hunkが何を変更しているか理解
  • 意味的グループ化: 同じ目的の変更(バグ修正、リファクタリング等)をグループ化
  • コミット計画: どのhunkをどのコミットに含めるか決定
bash
undefined
请按hunk单元分析变更,确定要包含在首次提交中的hunk
  • 读取hunk内容:理解每个hunk的变更内容
  • 语义分组:将同一目的的变更(如bug修复、重构等)分组
  • 提交规划:确定哪些hunk归入哪个提交
bash
undefined

全体のhunk数

统计总hunk数

grep -c "^@@" .claude/tmp/current_changes.patch
grep -c "^@@" .claude/tmp/current_changes.patch

各ファイルのhunk数

统计每个文件的hunk数

git diff HEAD --name-only | xargs -I {} sh -c 'printf "%s: " "{}"; git diff HEAD {} | grep -c "^@@"'
undefined
git diff HEAD --name-only | xargs -I {} sh -c 'printf "%s: " "{}"; git diff HEAD {} | grep -c "^@@"'
undefined

Step 3: 自動ステージング

Step 3: 自动暂存

選択したhunkを
git-sequential-stage
で自動的にステージングしてください
bash
undefined
请使用
git-sequential-stage
自动暂存选中的hunk
bash
undefined

git-sequential-stageを実行(内部で逐次ステージングを安全に処理)

执行git-sequential-stage(内部安全处理逐次暂存)

部分的な変更をステージング(hunk番号指定)

暂存部分变更(指定hunk编号)

git-sequential-stage -patch=".claude/tmp/current_changes.patch" -hunk="src/calculator.py:1,3,5"
git-sequential-stage -patch=".claude/tmp/current_changes.patch" -hunk="src/calculator.py:1,3,5"

ファイル全体をステージング(意味的に一体の変更の場合)

暂存整个文件(变更在语义上为一个整体时)

git-sequential-stage -patch=".claude/tmp/current_changes.patch" -hunk="tests/test_calculator.py:*"
git-sequential-stage -patch=".claude/tmp/current_changes.patch" -hunk="tests/test_calculator.py:*"

複数ファイルの場合(混在使用)

多文件场景(混合使用)

git-sequential-stage -patch=".claude/tmp/current_changes.patch"
-hunk="src/calculator.py:1,3,5"
-hunk="src/utils.py:2"
-hunk="docs/CHANGELOG.md:*"
git-sequential-stage -patch=".claude/tmp/current_changes.patch"
-hunk="src/calculator.py:1,3,5"
-hunk="src/utils.py:2"
-hunk="docs/CHANGELOG.md:*"

コミット実行

执行提交

git commit -m "$COMMIT_MSG"
undefined
git commit -m "$COMMIT_MSG"
undefined

Step 4: 繰り返し

Step 4: 重复操作

Step 5: 最終確認

Step 5: 最终确认

ワイルドカード使用の判断基準

通配符使用判断标准

  • 新規ファイルの追加
  • すべての変更が同じ目的(例:ファイル全体のリファクタリング、ドキュメント更新)
  • 「hunkを数えるのが面倒」という理由で使用するものではない。
  • 新增文件时
  • 所有变更为同一目的(例如:文件整体重构、文档更新)
  • 不得因“统计hunk太麻烦”而使用通配符。