mcpField
G
git-update

git-update

github.com/dzhuneyt開発062 回インストール3 週間前に更新
リポジトリ

git-update について

リモートの更新を取得し、安全性を確認できた場合に現在のブランチをリベースするGitスキルです。ローカル変更を慎重に退避・復元し、結果を一文で報告します。

主な機能

  1. 01Gitリポジトリと作業ツリーを検証
  2. 02リモートの更新を取得
  3. 03ブランチ履歴とリベースの安全性を確認
  4. 04インデックスの状態を保って変更を退避
  5. 05操作後にローカル変更を復元

活用シーン

  1. 01変更のないブランチをリモートで更新
  2. 02ローカル変更を保持してリベース
  3. 03履歴にリスクがある場合にリベースを回避

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dzhuneyt/skills --skill git-update

インストール後、Claude Code で/git-updateを入力して読み込まれたか確認します。

詳細

以下の手順を実行します:

  1. 現在のディレクトリが有効な git リポジトリか確認します
  2. リモートから最新の変更を取得します
  3. 作業ディレクトリがクリーンか(ローカルの変更がないか)確認します
  4. クリーンな場合:安全性を分析し、スタッシュ操作を省略して直接リベースでプルします
  5. 変更がある場合:git stash push --include-untracked --keep-index で変更をスタッシュします(ステージング状態を保持します)
  6. リベースが安全そうか分析します(コミット履歴を比較して潜在的な競合を確認します)
  7. 安全な場合:リベースでプルし、必要に応じて git stash pop でスタッシュを復元します
  8. 安全でない場合:中止し、必要に応じて git stash pop でスタッシュを復元して、元の状態を完全に戻します
  9. 操作結果を必ずちょうど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文の要約を出力します
  • データ損失は一切許容しません

コメント