Agent Skills by ALSEL
Anthropic Claude個人生産性⭐ リポ 0品質スコア 50/100

git-workflow

ブランチ戦略、コミット規約、マージ・リベース、コンフリクト解消など、あらゆる規模のチームに対応したGitワークフローのベストプラクティスを提供するスキル。チーム開発の効率化や運用ルール整備が必要な場面で活用できます。

description の原文を見る

Git工作流模式,包括分支策略、提交约定、合并与变基、冲突解决以及适用于各种规模团队的协作开发最佳实践。

SKILL.md 本文

Git ワークフローパターン

Git バージョン管理、分支戦略、協調開発のベストプラクティス。

使用開始時期

  • 新規プロジェクトの Git ワークフロー設定
  • 分支戦略の選定(GitFlow、トランク開発、GitHub Flow)
  • コミットメッセージと PR 説明文の作成
  • マージコンフリクトの解決
  • リリースとバージョンタグの管理
  • チームメンバーの Git 実践の習熟

分支戦略

GitHub Flow(シンプル、ほとんどのシナリオで推奨)

継続的デプロイと中小チームに最適。

main (protected, always deployable)
  │
  ├── feature/user-auth      → PR → merge to main
  ├── feature/payment-flow   → PR → merge to main
  └── fix/login-bug          → PR → merge to main

ルール:

  • main は常にデプロイ可能
  • main から機能分支を作成
  • 準備ができたら Pull Request を作成
  • レビュー承認と CI パス後、main にマージ
  • マージ後すぐにデプロイ

トランク開発(高速チーム向け)

強力な CI/CD と機能フラグを備えたチームに最適。

main (トランク)
  │
  ├── 短期機能分支(最長1~2日)
  ├── 短期機能分支
  └── 短期機能分支

ルール:

  • すべてのメンバーが main に直接コミットするか、極短寿命の分支を使用
  • 機能フラグで未完成の作業を非表示化
  • マージ前に CI の合格が必須
  • 1日複数回のデプロイ

GitFlow(複雑、リリース周期ベース)

計画的リリースとエンタープライズプロジェクトに適切。

main (本番リリース版)
  │
  └── develop (統合分支)
        │
        ├── feature/user-auth
        ├── feature/payment
        │
        ├── release/1.0.0    → main と develop にマージ
        │
        └── hotfix/critical  → main と develop にマージ

ルール:

  • main は本番対応コードのみを含む
  • develop は統合分支
  • 機能分支は develop から作成され、develop に戻マージ
  • リリース分支は develop から作成され、maindevelop にマージ
  • ホットフィックス分支は main から作成され、maindevelop にマージ

どの戦略を使用するか

戦略チーム規模リリース頻度最適なユースケース
GitHub Flow任意継続的SaaS、Web アプリ、スタートアップ
トランク開発5名以上で経験あり1日複数回高速チーム、機能フラグ
GitFlow10名以上計画的エンタープライズ、規制業界

コミットメッセージ

従来のコミット形式

<type>(<scope>): <subject>

[optional body]

[optional footer(s)]

タイプ

タイプ用途
feat新機能feat(auth): add OAuth2 login
fixバグ修正fix(api): handle null response in user endpoint
docsドキュメントdocs(readme): update installation instructions
styleフォーマット調整、コード変更なしstyle: fix indentation in login component
refactorコードリファクタリングrefactor(db): extract connection pool to module
testテスト追加/更新test(auth): add unit tests for token validation
choreメンテナンス作業chore(deps): update dependencies
perfパフォーマンス改善perf(query): add index to users table
ciCI/CD 変更ci: add PostgreSQL service to test workflow
revert以前のコミットを取り消しrevert: revert "feat(auth): add OAuth2 login"

良い例と悪い例

# 悪い:曖昧、文脈がない
git commit -m "何か修正"
git commit -m "更新"
git commit -m "進行中"

# 良い:明確、具体的、理由を説明
git commit -m "fix(api): ピーク時に 503 になったリクエストをリトライ

外部 API は高負荷時に時々 503 エラーを返す。
指数バックオフリトライロジックを追加、最大3回まで試行。

#123 を解決"

コミットメッセージテンプレート

リポジトリルートに .gitmessage を作成:

# <type>(<scope>): <subject>
# # タイプ:feat, fix, docs, style, refactor, test, chore, perf, ci, revert
# スコープ:api, ui, db, auth など
# サブジェクト:命令形、句点なし、最大50文字
#
# [任意の本文] - 理由を説明、内容ではなく
# [任意のフッター] - 破壊的変更、#issue を解決

有効化方法:git config commit.template .gitmessage

マージ vs リベース

マージ(履歴を保留)

# Creates a merge commit
git checkout main
git merge feature/user-auth

# Result:
# *   merge commit
# |\
# | * feature commits
# |/
# * main commits

適用シナリオ:

  • 機能分支を main にマージ
  • 完全な履歴を保留したい場合
  • 複数人が同じ分支で開発
  • 分支が既にプッシュされており、他者が基づいている可能性

リベース(線形履歴)

# Rewrites feature commits onto target branch
git checkout feature/user-auth
git rebase main

# Result:
# * feature commits (rewritten)
# * main commits

適用シナリオ:

  • 最新の main でローカル機能分支を更新
  • 線形できれいな履歴が欲しい場合
  • 分支がローカルのみ(プッシュ未済)
  • 自分だけが分支で作業

リベースワークフロー

# Update feature branch with latest main (before PR)
git checkout feature/user-auth
git fetch origin
git rebase origin/main

# Fix any conflicts
# Tests should still pass

# Force push (only if you're the only contributor)
git push --force-with-lease origin feature/user-auth

リベースしてはいけない場合

# 以下の分支をリベースしない:
- 共有リポジトリにプッシュ済みの分支
- 他者が基づいている分支
- 保護された分支(main、develop)
- マージ済みの分支

# 理由:リベースは履歴を書き直し、他者の作業を破壊

Pull Request ワークフロー

PR タイトル形式

<type>(<scope>): <description>

例:
feat(auth): add SSO support for enterprise users
fix(api): resolve race condition in order processing
docs(api): add OpenAPI specification for v2 endpoints

PR 説明テンプレート

## 内容

この PR の内容の簡潔な説明。

## 動機

背景と動機を説明。

## 実装方法

強調すべき主要な実装詳細。

## テスト

- [ ] 新規/更新単体テスト
- [ ] 新規/更新統合テスト
- [ ] 手動テストの実施

## スクリーンショット(該当時)

UI 変更の前後対比画像。

## チェックリスト

- [ ] コードはプロジェクトスタイルガイドに従う
- [ ] セルフレビュー完了
- [ ] 複雑なロジックにコメント追加
- [ ] ドキュメント更新
- [ ] 新しい警告なし
- [ ] テストがローカルで成功
- [ ] 関連 issue がリンク

#123 を解決

コードレビューチェックリスト

レビュアー:

  • [ ] コードは記述された問題を解決しているか?
  • [ ] すべてのエッジケースを処理しているか?
  • [ ] コードは読みやすく保守しやすいか?
  • [ ] テストは十分か?
  • [ ] セキュリティの問題はないか?
  • [ ] コミット履歴がきれい(必要に応じてスカッシュ)か?

作者:

  • [ ] レビュー要請前にセルフレビュー完了
  • [ ] CI パス(テスト、lint、型チェック)
  • [ ] PR サイズが適切(理想 <500行)
  • [ ] 単一機能/修正に関連
  • [ ] 説明が明確に変更を説明

コンフリクト解決

コンフリクト識別

# Check for conflicts before merge
git checkout main
git merge feature/user-auth --no-commit --no-ff

# If conflicts, Git will show:
# CONFLICT (content): Merge conflict in src/auth/login.ts
# Automatic merge failed; fix conflicts and then commit the result.

コンフリクト解決

# See conflicted files
git status

# View conflict markers in file
# <<<<<<< HEAD
# content from main
# =======
# content from feature branch
# >>>>>>> feature/user-auth

# Option 1: Manual resolution
# Edit file, remove markers, keep correct content

# Option 2: Use merge tool
git mergetool

# Option 3: Accept one side
git checkout --ours src/auth/login.ts    # Keep main version
git checkout --theirs src/auth/login.ts  # Keep feature version

# After resolving, stage and commit
git add src/auth/login.ts
git commit

コンフリクト予防戦略

# 1. Keep feature branches small and short-lived
# 2. Rebase frequently onto main
git checkout feature/user-auth
git fetch origin
git rebase origin/main

# 3. Communicate with team about touching shared files
# 4. Use feature flags instead of long-lived branches
# 5. Review and merge PRs promptly

分支管理

命名規約

# 機能分支
feature/user-authentication
feature/JIRA-123-payment-integration

# バグ修正
fix/login-redirect-loop
fix/456-null-pointer-exception

# ホットフィックス(本番問題)
hotfix/critical-security-patch
hotfix/database-connection-leak

# リリース版
release/1.2.0
release/2024-01-hotfix

# 実験/概念実証
experiment/new-caching-strategy
poc/graphql-migration

分支クリーンアップ

# Delete local branches that are merged
git branch --merged main | grep -v "^\*\|main" | xargs -n 1 git branch -d

# Delete remote-tracking references for deleted remote branches
git fetch -p

# Delete local branch
git branch -d feature/user-auth  # Safe delete (only if merged)
git branch -D feature/user-auth  # Force delete

# Delete remote branch
git push origin --delete feature/user-auth

Stash ワークフロー

# Save work in progress
git stash push -m "WIP: user authentication"

# List stashes
git stash list

# Apply most recent stash
git stash pop

# Apply specific stash
git stash apply stash@{2}

# Drop stash
git stash drop stash@{0}

リリース管理

セマンティックバージョニング

MAJOR.MINOR.PATCH

MAJOR:破壊的変更
MINOR:新機能、後方互換性あり
PATCH:バグ修正、後方互換性あり

例:
1.0.0 → 1.0.1(パッチ:バグ修正)
1.0.1 → 1.1.0(マイナー:新機能)
1.1.0 → 2.0.0(メジャー:破壊的変更)

リリース作成

# Create annotated tag
git tag -a v1.2.0 -m "Release v1.2.0

Features:
- Add user authentication
- Implement password reset

Fixes:
- Resolve login redirect issue

Breaking Changes:
- None"

# Push tag to remote
git push origin v1.2.0

# List tags
git tag -l

# Delete tag
git tag -d v1.2.0
git push origin --delete v1.2.0

変更ログ生成

# Generate changelog from commits
git log v1.1.0..v1.2.0 --oneline --no-merges

# Or use conventional-changelog
npx conventional-changelog -i CHANGELOG.md -s

Git 設定

基本設定

# User identity
git config --global user.name "Your Name"
git config --global user.email "your@email.com"

# Default branch name
git config --global init.defaultBranch main

# Pull behavior (rebase instead of merge)
git config --global pull.rebase true

# Push behavior (push current branch only)
git config --global push.default current

# Auto-correct typos
git config --global help.autocorrect 1

# Better diff algorithm
git config --global diff.algorithm histogram

# Color output
git config --global color.ui auto

便利なエイリアス

# Add to ~/.gitconfig
[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    unstage = reset HEAD --
    last = log -1 HEAD
    visual = log --oneline --graph --all
    amend = commit --amend --no-edit
    wip = commit -m "WIP"
    undo = reset --soft HEAD~1
    contributors = shortlog -sn

Gitignore パターン

# Dependencies
node_modules/
vendor/

# Build outputs
dist/
build/
*.o
*.exe

# Environment files
.env
.env.local
.env.*.local

# IDE
.idea/
.vscode/
*.swp
*.swo

# OS files
.DS_Store
Thumbs.db

# Logs
*.log
logs/

# Test coverage
coverage/

# Cache
.cache/
*.tsbuildinfo

一般的なワークフロー

新機能を開始

# 1. Update main branch
git checkout main
git pull origin main

# 2. Create feature branch
git checkout -b feature/user-auth

# 3. Make changes and commit
git add .
git commit -m "feat(auth): implement OAuth2 login"

# 4. Push to remote
git push -u origin feature/user-auth

# 5. Create Pull Request on GitHub/GitLab

PR に新しい変更を追加

# 1. Make additional changes
git add .
git commit -m "feat(auth): add error handling"

# 2. Push updates
git push origin feature/user-auth

Fork をアップストリームと同期

# 1. Add upstream remote (once)
git remote add upstream https://github.com/original/repo.git

# 2. Fetch upstream
git fetch upstream

# 3. Merge upstream/main into your main
git checkout main
git merge upstream/main

# 4. Push to your fork
git push origin main

誤った操作を取り消し

# Undo last commit (keep changes)
git reset --soft HEAD~1

# Undo last commit (discard changes)
git reset --hard HEAD~1

# Undo last commit pushed to remote
git revert HEAD
git push origin main

# Undo specific file changes
git checkout HEAD -- path/to/file

# Fix last commit message
git commit --amend -m "New message"

# Add forgotten file to last commit
git add forgotten-file
git commit --amend --no-edit

Git フック

プリコミットフック

#!/bin/bash
# .git/hooks/pre-commit

# Run linting
npm run lint || exit 1

# Run tests
npm test || exit 1

# Check for secrets
if git diff --cached | grep -E '(password|api_key|secret)'; then
    echo "Possible secret detected. Commit aborted."
    exit 1
fi

プリプッシュフック

#!/bin/bash
# .git/hooks/pre-push

# Run full test suite
npm run test:all || exit 1

# Check for console.log statements
if git diff origin/main | grep -E 'console\.log'; then
    echo "Remove console.log statements before pushing."
    exit 1
fi

アンチパターン

# 誤り:メイン分支へ直接コミット
git checkout main
git commit -m "バグ修正"

# 正しい:機能分支と Pull Request を使用

# 誤り:秘密情報をコミット
git add .env  # API キーを含む

# 正しい:.gitignore に追加、環境変数を使用

# 誤り:巨大な PR(1000行超)
# 正しい:より小さく、焦点を絞った PR に分割

# 誤り:曖昧なコミットメッセージ
git commit -m "更新"
git commit -m "修正"

# 正しい:説明的なメッセージ
git commit -m "fix(auth): ログイン後のリダイレクトループを解決"

# 誤り:公開履歴を書き直し
git push --force origin main

# 正しい:公開分支では revert を使用
git revert HEAD

# 誤り:長期存在の機能分支(数週~数ヶ月)
# 正しい:短期分支(数日)、頻繁なリベース

# 誤り:生成ファイルをコミット
git add dist/
git add node_modules/

# 正しい:.gitignore に追加

クイックリファレンス

タスクコマンド
分支を作成git checkout -b feature/name
分支を切り替えgit checkout branch-name
分支を削除git branch -d branch-name
分支をマージgit merge branch-name
分支をリベースgit rebase main
履歴を表示git log --oneline --graph
変更を表示git diff
変更をステージgit add . or git add -p
コミットgit commit -m "message"
プッシュgit push origin branch-name
プルgit pull origin branch-name
Stashgit stash push -m "message"
最後のコミットを取り消しgit reset --soft HEAD~1
コミットを取り消しgit revert HEAD

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
affaan-m
リポジトリ
affaan-m/everything-claude-code
ライセンス
MIT
最終更新
不明

Source: https://github.com/affaan-m/everything-claude-code / ライセンス: MIT

関連スキル

汎用個人生産性⭐ リポ 7,456

newsblur-cli

ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。

by samuelclay
汎用個人生産性⭐ リポ 58,643

caveman-compress

自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」

by JuliusBrussee
ALSEL独自Anthropic Claude個人生産性

find-skills

日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。

by 株式会社ALSEL
汎用個人生産性⭐ リポ 39,967

planning-and-task-breakdown

仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。

by addyosmani
Anthropic Claude個人生産性⭐ リポ 132,723

docx

このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。

by anthropics
汎用個人生産性⭐ リポ 39,967

idea-refine

アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: affaan-m · affaan-m/everything-claude-code · ライセンス: MIT