ワンクリックで
tidy-branch
作業中のブランチの紆余曲折した変更履歴を、道筋の通った意味のある単位のコミット列に再整理する。ブランチのコミットを整理したいとき、履歴をきれいにしたいとき、「ブランチを整理して」「コミットを分割し直して」と言われたときに使う。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
作業中のブランチの紆余曲折した変更履歴を、道筋の通った意味のある単位のコミット列に再整理する。ブランチのコミットを整理したいとき、履歴をきれいにしたいとき、「ブランチを整理して」「コミットを分割し直して」と言われたときに使う。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | tidy-branch |
| description | 作業中のブランチの紆余曲折した変更履歴を、道筋の通った意味のある単位のコミット列に再整理する。ブランチのコミットを整理したいとき、履歴をきれいにしたいとき、「ブランチを整理して」「コミットを分割し直して」と言われたときに使う。 |
作業ブランチの変更全体を意味のある単位のコミット列に再構成する。紆余曲折(試行錯誤の跡、行き止まりの実装、fixup の積み重ね)を履歴から消し、最初からその道筋で書いたかのようなコミット列を作る。
引数: [base](base ブランチの上書き)、--verify-each(全中間コミットでフルテスト)
整理後のブランチ最終ツリーは元と完全一致していなければならない。唯一の例外はユーザーが個別に承認した残骸の削除。この検証(手順 5)を通らない結果を差し替えてはならない。
git base-branch を実行(ユーザーの個人 alias。branch.<name>.base config を返す)。成功したらその値を使う。git symbolic-ref refs/remotes/origin/HEAD など)との git merge-base で自動検出。<merge-base>..HEAD のコミット一覧を確認する。以下があればプランで警告する:
git add -A && git commit で WIP コミットを作り、整理の原材料に加えるgit diff <base>...HEAD の全体を読み、変更の意味的なまとまりを把握する。以下を提示して承認を得る。承認前に構築を始めない:
ユーザーの working tree に触れないため、必ず一時 worktree で作業する:
git worktree add .worktree/tidy-<branch> -b tidy/<branch> HEAD
GIT_SEQUENCE_EDITOR に todo を書き換えるスクリプトを渡して git rebase -i <base> を非対話実行する。author date は自然に保存される。git reset --soft <merge-base> してから、プランの単位ごとに部分ステージング(git add <file> / git apply --cached によるハンク単位の適用)でコミットを積む。author date を近似保存する: 新コミットが元コミットとほぼ 1:1 なら GIT_AUTHOR_DATE にその author date を、複数の統合なら構成要素の最新の author date を設定する。--verify-each 指定時はフルテストも各コミットで実行する。git diff <元ブランチ> tidy/<branch> が空であること。残骸削除を承認した場合は、diff が承認済みの削除分と正確に一致すること。ここが一致しない限り先に進まない。検証が通ったら確認なしで差し替える(backup ref から git reset --keep 一発で戻せるため):
git update-ref refs/backups/tidy/<branch> <元の先端>
# ユーザーの worktree(元ブランチを checkout している側)で:
git reset --keep tidy/<branch>
git worktree remove .worktree/tidy-<branch>
git branch -D tidy/<branch>
git reset --keep が未コミット変更との衝突で失敗したら、stash してから再実行するようユーザーに案内する。git log --oneline --stat、検証結果、undo 方法(git reset --keep refs/backups/tidy/<branch>)。git push --force-with-lease を案内する(push はしない)。構築中に何が起きても元ブランチは無傷。中断する場合は一時 worktree とブランチを削除して報告する:
git worktree remove --force .worktree/tidy-<branch>
git branch -D tidy/<branch>