← ClaudeAtlas

git-sync-cleanuplisted

ロ��カルリポジトリを最新化し、不要になったローカルブランチを掃除するスキル。ベースブランチ(main / master を自動検出)に切り替え、`git pull --prune` で origin から最新化し、リモート側ですでに削除されているローカルブランチ(upstream が `gone` のもの)を一括削除する。実行前に未コミット変更を検知して中断し、削除対象は一覧提示してユーザーから一括承認を取り、未マージのブランチは安全のため削除せずリストで報告する。リモートは origin 固定。ユーザーが「ローカル最新化」「コードを最新化」「main を pull」「master 更新」「最新の main に追従」「ブランチ整理」「ブランチ掃除」「不要ブランチ削除」「リモートで削除されたブランチ」「マージ済みブランチを消したい」「git pull --prune」「git fetch --prune」「prune」「gone ブランチ」「朝イチの同期」「作業開始時の同期」「pull して掃除」「sync」「cleanup branches」「prune local branches」などに言及した場合にこのスキルを使うこと。「pull」「最新化」「同期」「ブランチ削除」だけでも、ローカル��業の起点としてこのスキルが適切で��れば積極的に使ってよい。
ijufumi/claude-skills · ★ 0 · Code & Development · score 58
Install: claude install-skill ijufumi/claude-skills
# ローカル最新化 & ブランチ掃除スキル ローカルリポジトリを `origin` の最新に追従させ、リモート側で削除済みのローカルブランチを掃除するためのスキル。日々の作業開始時や、長期開発の合間にローカルが散らかってきたタイミングで使う。 ## 前提条件 - カレントディレクトリが Git リポジトリであること - `origin` という名前のリモートが存在し、認証済みで `git fetch` / `git pull` が可能なこと - `origin` 上に `main` または `master` のいずれかのブランチが存在すること > リモートは **`origin` 固定** で扱う。複数リモートを運用していても、このスキルは `origin` のみを対象に fetch / prune / pull する。他リモートの掃除をしたい場合はユーザーが個別に指示する想定。 --- ## ワークフロー概要 ``` [Step 1: 環境の確認] → [Step 2: 未コミット変更の検出(あれば中断)] → [Step 3: ベースブランチの検出と切り替え] → [Step 4: fetch --prune で全 ref prune → base を fast-forward 取り込み] → [Step 5: 削除候補(upstream が gone のブランチ)の検出] → [Step 6: 削除対象一覧の提示と一括承認] → [Step 7: 一括削除(未マージは保護してリスト報告)] → [Step 8: 結果サマリ] ``` **ユーザー承認が必須なのは Step 6 の 1 箇所のみ**。Step 2 で未コミット変更を検出した場合は承認ではなく「中断 → 状況報告 → ユーザーに対応を委ねる」で扱う。 ユーザーが最初のリクエストで「全部 OK」「掃除も含めて全部やって」など事前承認を明言している場合は、Step 6 の確認を 1 行の復唱に省略してよい(例: `gone ブランチ 5 件を削除します`)。 --- ## Step 1: 環境の確認 最初にツールが揃っているかを軽く確認する。 ```bash # Git リポジトリか git rev-parse --is-inside-work-tree # origin が存在するか git remote get-url origin ``` どちらかが失敗した場合は、その内容をユーザーに報告して中断する。Git リポジトリでない場合は「ここは Git リポジトリではないようです」と素直に伝える(`git init` は勝手にしない)。`origin` が無い場合は「`origin` リモートが見つかりません。リモートを追加してから再実行してください」と案内する。 ユーザーへの最初のテキスト出力で、これから行うことを 1 行で予告すること(例: `origin から最新化して、不要なローカルブランチを掃除します`)。 ## Step 2: 未コミット変更の検出(あれば中断) ベースブランチに切り替える前に、ワークツリーがクリーンであることを確認する。`git switch` は変更が衝突しない場合は通すが、`git pull` も含めて予期せぬ事故を避けるため、**未コミット変更がある時点で中断する**。勝手に `stash` / `commit` / `restore` はしない。 ```bash # 変更の有無