git-update について
リモートの更新を取得し、安全性を確認できた場合に現在のブランチをリベースするGitスキルです。ローカル変更を慎重に退避・復元し、結果を一文で報告します。
主な機能
- 01Gitリポジトリと作業ツリーを検証
- 02リモートの更新を取得
- 03ブランチ履歴とリベースの安全性を確認
- 04インデックスの状態を保って変更を退避
- 05操作後にローカル変更を復元
活用シーン
- 01変更のないブランチをリモートで更新
- 02ローカル変更を保持してリベース
- 03履歴にリスクがある場合にリベースを回避
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dzhuneyt/ skills --skill git-updateインストール後、Claude Code で/git-updateを入力して読み込まれたか確認します。
詳細
以下の手順を実行します:
- 現在のディレクトリが有効な git リポジトリか確認します
- リモートから最新の変更を取得します
- 作業ディレクトリがクリーンか(ローカルの変更がないか)確認します
- クリーンな場合:安全性を分析し、スタッシュ操作を省略して直接リベースでプルします
- 変更がある場合:
git stash push --include-untracked --keep-indexで変更をスタッシュします(ステージング状態を保持します) - リベースが安全そうか分析します(コミット履歴を比較して潜在的な競合を確認します)
- 安全な場合:リベースでプルし、必要に応じて
git stash popでスタッシュを復元します - 安全でない場合:中止し、必要に応じて
git stash popでスタッシュを復元して、元の状態を完全に戻します - 操作結果を必ずちょうど1文で要約します
安全性の確認:
git rev-parse --is-inside-work-treeを使って git リポジトリか確認します- 競合の原因となる可能性がある、分岐したコミット履歴がないか確認します
- リモートで強制プッシュが行われていないか確認します(リベースには危険です)
- 安全にリベースできるブランチにいることを確認します
- ローカルの変更を効率的に確認するため、
git status --porcelainを使います - 作業ディレクトリに変更がある場合に限り、スタッシュ/スタッシュ解除を行います
スタッシュの安全ルール:
- ステージング状態を保持するため、
git stash push --include-untracked --keep-indexを使います - 復元には必ず
git stash popを使い、git stash applyは使いません - 競合によりスタッシュのポップに失敗した場合は、
git reset --hardを使ってからgit stash applyを実行し、解決します - 中止する場合は、ファイルを元の状態に完全に戻します(ステージ済みのファイルはステージ済みのまま、ステージされていないファイルはそのままにします)
- スタッシュに失敗した場合、または復元によってデータが失われるおそれがある場合は、決して処理を続行しません
ルール:
- スタッシュ操作中も、ファイルの正確な状態(ステージ済み/ステージされていない)を保持します
- 競合の可能性が低い場合に限り、リベースを続行します
- 中止する場合は、必ず元の状態に戻します
- 最後に、ちょうど1文の要約を出力します
- データ損失は一切許容しません
コメント
Markdown 対応