mcpField
G
git-pushing

git-pushing

github.com/sickn33開発48.7k918 回インストール今日更新
リポジトリ

git-pushing について

git-pushingは、対象の変更をコミットしてリモートブランチへプッシュするワークフロースキルです。隔離したステージングを行い、保護ブランチやリリース作業はリポジトリ固有の手順に委ねます。

主な機能

  1. 01ブランチ状態とリポジトリポリシーの確認
  2. 02指定ファイルの隔離ステージング
  3. 03Conventional Commits形式の作成
  4. 04設定済みリモートへのプッシュ
  5. 05安全でないリポジトリ状態の拒否

活用シーン

  1. 01範囲を限定した変更のコミットとプッシュ
  2. 02トピックブランチで完了した作業を共有

インストール

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

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill git-pushing

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

同梱ファイルscripts/smart_commit.sh

詳細

Git プッシュワークフロー

意図した変更のみをステージし、Conventional Commit を作成して、リモートブランチにプッシュします。

使用する場面

ユーザーが次のことを行ったときに自動的に有効化します:

  • 変更のプッシュを明示的に依頼した場合(「これをプッシュして」「コミットしてプッシュして」)
  • 作業をリモートに保存することに言及した場合(「github に保存して」「リモートにプッシュして」)
  • 機能を完成させ、それを共有したい場合
  • 「これをプッシュしよう」「これらの変更をコミットしよう」といったフレーズを言った場合

安全ゲート

ステージする前に、git status --short --branch を確認し、意図したファイルを確定し、同時プッシュの可能性がある場合は上流ブランチをフェッチします。無関係なダーティファイルを取り込まないでください。

宛先ブランチを選択する前にリポジトリのポリシーを確認してください。main または master が保護されている場合、またはリポジトリが merge:batch のようなメンテナーコマンドを定義している場合は、トピックブランチを作成または使用し、必要なプルリクエストチェックを経て完了させてください。ユーザーによる「main にプッシュして」という要求は、望ましい最終状態を述べたものであり、サーバー側の保護を回避することを許可するものではありません。保護ブランチへの拒否の後、直接プッシュを再試行し続けないでください。

このヘルパーは、何かをステージする前に、空のライブインデックスと Conventional Commit メッセージを必要とします。ライブインデックスをロックし、分離された一時インデックスでコミットを構築および検証し、パスなしの -- を拒否し、親が変更されていない場合にのみブランチをアトミックに更新します。

このヘルパーは branch.<name>.pushRemote、remote.pushDefault、およびブランチに設定された上流を、この順序で優先します。これらの設定がない新しいブランチの場合、origin を必要とし、origin/<branch> を確立します。ステージする前に、detached HEAD および無効なリモート設定を拒否します。

このスキルを、メンテナーのマージバッチ、正規の同期、バージョン管理されたリポジトリのリリース、タグの公開、または明示的な merge:batch、release:prepare、release:publish ワークフローを持つリポジトリには使用しないでください。代わりにそのリポジトリのメンテナー/リリースフローを使用してください。それがプルリクエストのエビデンス、保護ブランチのチェック、生成されたファイル、タグ、および公開の検証を担います。

ワークフロー

安全ゲートを通過した後にのみ、このヘルパーを使用してください。この SKILL.md を含むインストール済みディレクトリを解決し、その絶対パスを以下の <skill-directory> に置き換えてください。現在の作業ディレクトリがカタログリポジトリであると仮定しないでください。パスを指定しない場合、ヘルパーは現在のすべての変更をステージするため、すべてのダーティファイルが要求されたコミットに属する場合にのみその形式を使用してください:

bash "<skill-directory>/scripts/smart_commit.sh"

カスタムメッセージを使用する場合:

bash "<skill-directory>/scripts/smart_commit.sh" "feat: add feature"

名前付きファイルのみをステージするには、-- の後にそれらを渡します:

bash "<skill-directory>/scripts/smart_commit.sh" "fix: scope change" -- path/to/file

このヘルパーは分離されたステージング、コミットの作成、およびプッシュを処理します。検証、リリースツール、または高度な上流ブランチによって要求されるリベースの代わりにはなりません。

制限事項

  • このヘルパーは現在、Git の files ref バックエンドを必要とします。reftable リポジトリでは、その ref がファイルシステムロックプロトコルを使用できないため、コミットを作成する前に拒否します。
  • このスキルは、タスクが上記の範囲に明確に一致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代替として扱わないでください。
  • 必要な入力、権限、安全境界、または成功基準が欠けている場合は、停止して明確化を求めてください。

コメント