Skip to content

構成管理

23.1. GitHub Flowブランチ戦略

23.1.1. 基本原則

  • main ブランチは常にデプロイ可能な状態を維持します。
  • すべての作業は main から分岐したfeatureブランチで実行します。
  • 作業完了後、Pull Requestを作成し、レビューを経て main にマージします。

23.1.2. ブランチネーミング

プレフィックス用途
feature/新機能開発feature/user-registration
fix/バグ修正fix/login-redirect-error
hotfix/プロダクション緊急修正hotfix/payment-null-check
chore/ビルド、設定、依存関係等の非機能作業chore/update-spring-boot
docs/ドキュメント作業docs/api-specification
refactor/リファクタリングrefactor/user-service-cleanup

23.1.3. ブランチネーミングルール

  • 小文字とハイフン(-)のみ使用します。
  • スラッシュ(/)はプレフィックスの区切りにのみ使用します。
  • ブランチ名は作業内容を簡潔に説明します。
  • イシュー番号がある場合は含めます:feature/123-user-registration

23.1.4. ワークフロー


23.2. コミットメッセージコンベンション

23.2.1. Conventional Commits

すべてのコミットメッセージはConventional Commits形式に従います。

<type>: <description>

[optional body]

23.2.2. タイプ一覧

タイプ説明
feat新機能feat: ユーザープロフィール照会API追加
fixバグ修正fix: ログイン時のリダイレクトエラー修正
docsドキュメント変更docs: API仕様書更新
styleコードフォーマット(動作変更なし)style: import整理
refactorリファクタリング(動作変更なし)refactor: UserServiceメソッド抽出
testテスト追加/修正test: UserService単体テスト追加
choreビルド、設定変更chore: Spring Boot 3.4.3アップデート
perfパフォーマンス改善perf: ユーザー一覧クエリ最適化
ciCI設定変更ci: CircleCIキャッシュ設定追加

23.2.3. コミットメッセージルール

  • タイトルは50文字以内で記述します。
  • タイトルは命令形で記述します。(「追加した」X → 「追加」O)
  • タイトルの末尾にピリオドを付けません。
  • 本文が必要な場合はタイトルと空行で区切ります。
  • 日本語または英語のいずれかをプロジェクトごとに統一します。

23.3. Pull Requestルール

23.3.1. PR必須条件

項目基準
レビュアー最低1名以上の承認
CIすべてのチェック通過(リント、ビルド、テスト)
コンフリクトマージコンフリクト解消完了
ブランチmain に対して最新状態

23.3.2. PRテンプレート

プロジェクトに .github/pull_request_template.md を含めます。

markdown
## 変更内容
<!-- このPRで変更した内容を簡潔に説明します -->

## 変更理由
<!-- なぜこの変更が必要なのかを説明します -->

## テスト
- [ ] 単体テスト追加/修正
- [ ] ローカルで動作確認

## 関連イシュー
<!-- 関連イシュー番号(例:#123) -->

23.3.3. マージ戦略

  • Squash and Mergeをデフォルトとして使用します。
  • マージ後、featureブランチは自動的に削除します。

23.4. .gitignore標準

23.4.1. 統合.gitignore例

txt
# Java / Maven
target/
*.class
*.jar
*.war

# Spring Boot
*.log

# IDE
.idea/
*.iml
.vscode/*
!.vscode/settings.json
!.vscode/extensions.json

# Node.js
node_modules/
dist/

# 環境変数
.env.local
.env.*.local

# OS
.DS_Store
Thumbs.db

23.4.2. 原則

  • ビルド成果物(target/dist/)は追跡しません。
  • IDE設定のうちチーム共有設定(.vscode/settings.json)のみ追跡します。
  • ローカル環境変数(.env.local)は追跡しません。

23.5. バージョンタグ付け

23.5.1. Semantic Versioning

すべてのリリースはSemantic Versioning(SemVer)ルールに従います。

MAJOR.MINOR.PATCH
区分変更タイミング
MAJOR下位互換性が失われる変更1.0.02.0.0
MINOR下位互換性のある機能追加1.0.01.1.0
PATCH下位互換性のあるバグ修正1.0.01.0.1

23.5.2. タグ形式

  • Gitタグ形式:v{MAJOR}.{MINOR}.{PATCH}
  • 例:v1.0.0v1.2.3
bash
git tag -a v1.0.0 -m "v1.0.0 リリース"
git push origin v1.0.0

23.5.3. リリースノート

すべてのリリースには変更内容を記述したリリースノートを作成します。コミットメッセージのタイプごとにグルーピングして作成します。

TIENIPIA QUALIFIED STANDARD