git-workflow
効果的なバージョン管理のために必要なGitのパターンをまとめたスキルで、各エージェントへの冗長なGit操作の説明を省略できます。
description の原文を見る
Essential Git patterns for effective version control, eliminating redundant Git guidance per agent.
SKILL.md 本文
Git ワークフロー
効果的なバージョン管理のための Essential Git パターン。エージェントごとの冗長な Git ガイダンス約 120~150 行を削減します。
コミット ベストプラクティス
Conventional Commits フォーマット
<type>(<scope>): <subject>
<body>
<footer>
型:
feat: 新機能fix: バグ修正docs: ドキュメント変更のみrefactor: バグ修正も機能追加もしないコード変更perf: パフォーマンス改善test: テスト追加または更新chore: ビルドプロセス、依存関係、ツーリング
例:
feat(auth): add OAuth2 authentication
Implements OAuth2 flow using Google provider.
Includes token refresh and validation.
Closes #123
fix(api): handle null response in user endpoint
Previously crashed when user not found.
Now returns 404 with error message.
perf(db): optimize user query with index
Reduces query time from 500ms to 50ms.
アトミックコミット
# 良い例: 各コミットが 1 つのことだけをする
git commit -m "feat: add user authentication"
git commit -m "test: add auth tests"
git commit -m "docs: update API docs for auth"
# 悪い例: 関連のない複数の変更
git commit -m "add auth, fix bugs, update docs"
ブランチ戦略
Git Flow (フィーチャーブランチ)
# main からフィーチャーブランチを作成
git checkout main
git pull origin main
git checkout -b feature/user-authentication
# 定期的なコミットでフィーチャーを実装
git add src/auth.py
git commit -m "feat(auth): implement login endpoint"
# ブランチを main の最新状態に保つ
git checkout main
git pull origin main
git checkout feature/user-authentication
git rebase main # または: git merge main
# プッシュして PR を作成
git push -u origin feature/user-authentication
Trunk-Based Development
# main に直接働いて短命ブランチを使用
git checkout main
git pull origin main
git checkout -b fix/null-pointer
# 小さな変更を実施
git commit -m "fix: handle null in user query"
git push origin fix/null-pointer
# PR で即座にマージ
よくあるワークフロー
ブランチを最新の変更で更新
# オプション 1: リベース (履歴がきれい)
git checkout feature-branch
git fetch origin
git rebase origin/main
# 競合がある場合は解決
git add resolved_file.py
git rebase --continue
# オプション 2: マージ (履歴を保持)
git checkout feature-branch
git merge origin/main
変更を取り消す
# 最後のコミットを取り消す (変更は保持)
git reset --soft HEAD~1
# 最後のコミットを取り消す (変更を破棄)
git reset --hard HEAD~1
# 特定のファイルの変更を取り消す
git checkout -- file.py
# コミットを取り消す (新しいコミットを作成)
git revert abc123
# 最後のコミットを修正
git add forgotten_file.py
git commit --amend --no-edit
作業を一時保存
# 現在の作業を一時的に保存
git stash
# stash の一覧を表示
git stash list
# 最新の stash を適用
git stash pop
# 特定の stash を適用
git stash apply stash@{0}
# 名前付き stash を作成
git stash save "WIP: authentication feature"
コミットのチェリーピック
# 別のブランチの特定のコミットを適用
git cherry-pick abc123
# 複数のコミットをチェリーピック
git cherry-pick abc123 def456
# コミットせずにチェリーピック
git cherry-pick -n abc123
競合を解決
# マージ/リベース中に競合が発生した場合
# 1. 競合しているファイルを確認
git status
# 2. ファイルを編集して競合を解決
# 競合マーカーを探す:
<<<<<<< HEAD
あなたの変更
=======
相手の変更
>>>>>>> branch-name
# 3. 解決済みとしてマーク
git add resolved_file.py
# 4. 操作を続行
git rebase --continue # または git merge --continue
履歴を表示
# コンパクトなログ
git log --oneline -10
# グラフィカルなログ
git log --graph --oneline --all
# 作者別のコミット
git log --author="John Doe"
# 特定のファイルに影響するコミット
git log -- path/to/file.py
# コミットの変更内容を表示
git show abc123
# ブランチを比較
git diff main..feature-branch
ブランチ管理
# ブランチの一覧を表示
git branch -a # すべてのブランチ (ローカル + リモート)
# ローカルブランチを削除
git branch -d feature-branch # 安全な削除 (マージ済みのみ)
git branch -D feature-branch # 強制削除
# リモートブランチを削除
git push origin --delete feature-branch
# ブランチの名前を変更
git branch -m old-name new-name
# リモートブランチを追跡
git checkout --track origin/feature-branch
タグ
# ライトウェイトタグを作成
git tag v1.0.0
# アノテーション付きタグを作成 (推奨)
git tag -a v1.0.0 -m "Release version 1.0.0"
# タグをリモートにプッシュ
git push origin v1.0.0
git push origin --tags # すべてのタグをプッシュ
# タグをチェックアウト
git checkout v1.0.0
# タグを削除
git tag -d v1.0.0
git push origin --delete v1.0.0
高度な操作
インタラクティブリベース
# 最後の 3 つのコミットを編集
git rebase -i HEAD~3
# エディタでのオプション:
# pick = コミットを使用
# reword = コミットメッセージを変更
# edit = 変更するために停止
# squash = 前のコミットと結合
# fixup = squash のようだがメッセージを破棄
# drop = コミットを削除
Bisect (バグが導入された箇所を探す)
# bisect を開始
git bisect start
git bisect bad # 現在のバージョンにバグがある
git bisect good v1.0.0 # このバージョンは正常
# Git が中央のコミットをチェックアウト
# バグが存在するか確認
git bisect bad # バグが存在する場合
git bisect good # バグが存在しない場合
# Git が最初の悪いコミットが見つかるまで絞り込む
git bisect reset # 元のブランチに戻る
Blame (誰がその行を変更したかを探す)
# 各行を最後に変更した人を表示
git blame file.py
# 空白の変更を無視
git blame -w file.py
# 特定の行の範囲を表示
git blame -L 10,20 file.py
Git フック
# pre-commit フック (コミット前に実行)
# .git/hooks/pre-commit
#!/bin/bash
npm run lint
npm test
# pre-push フック (プッシュ前に実行)
# .git/hooks/pre-push
#!/bin/bash
npm run test:integration
ベストプラクティス
✅ すべき こと
- アトミックな変更で頻繁にコミット
- 明確で説明的なコミットメッセージを記述
- プッシュ前にプル (競合を避けるため)
- コミット前に変更を確認 (
git diff --staged) - フィーチャーと修正にブランチを使用
- コミットを小さくて集中したものに保つ
❌ するべきでないこと
- 機密データをコミット (.gitignore を使用)
- 生成ファイルをコミット (ビルドアーティファクト、
node_modules) - 共有ブランチに強制プッシュ (
git push --force) - 作業中の状態を main にコミット
- 関連のない複数の変更を 1 つのコミットに含める
- 公開済みの履歴を書き換える
.gitignore パターン
# 依存関係
node_modules/
venv/
__pycache__/
# ビルド出力
dist/
build/
*.pyc
*.o
*.exe
# IDE
.vscode/
.idea/
*.swp
# 機密情報
.env
*.key
*.pem
secrets.yml
# OS
.DS_Store
Thumbs.db
# ログ
*.log
logs/
クイックコマンドリファレンス
# ステータスと差分
git status
git diff
git diff --staged
# コミット
git add .
git commit -m "message"
git push
# ブランチ
git branch
git checkout -b branch-name
git merge branch-name
# 更新
git pull
git fetch
# 取り消す
git reset HEAD~1
git checkout -- file
git revert commit-hash
# 履歴
git log
git log --oneline
git show commit-hash
覚えておくこと
- 頻繁にコミット - 小さいコミットはレビューと復元が簡単
- 説明的なメッセージ - 将来のあなたが感謝するでしょう
- プッシュ前にプル - チームとの同期を保つ
- ブランチを使用 - main を安定した状態に保つ
- コミット前にレビュー - 何がコミットされるかを確認
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- bobmatnyc
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/bobmatnyc/claude-mpm-skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。