========================================================================
Git運用ルール (Git Operation Rules)
========================================================================
1. 基本方針 (Basic Policy)
------------------------------------------------------------------------
チーム開発におけるコードの整合性を保ち,手戻りを防ぐために以下の運用フローを徹底する.
・メインブランチ (main):
- 本番環境または常に動作可能な状態を維持するブランチ.
- 直接のコミット(直プッシュ)は禁止する.必ずプルリクエスト(PR)経由でマージする.
・作業ブランチ (Feature Branch):
- 機能追加やバグ修正ごとに `main` から派生させて作成する.
- 作業完了後,`main` へマージし,原則として削除する.
2. ブランチ命名規則 (Branch Naming)
------------------------------------------------------------------------
2-1. プレフィックス (Prefix)
作業の種類を一目で判別するために,以下のプレフィックスを使用する.
■ カテゴリ一覧
・feature/: 新機能の実装,仕様変更
・fix/: バグ修正
・refactor/: コードの整理(挙動は変えない)
・docs/: ドキュメントの追記・修正
・chore/: ビルド設定やツール導入など,雑多な作業
2-2. 書式 (Format)
・書式: `[プレフィックス][日付(YYMMDD)]_[概要]`
・区切り: スラッシュ `/` および アンダースコア `_` を使用する.
・例:
- feature/260207_player_jump
- fix/260208_collision_bug
- docs/260210_guide_update
3. 開発フロー (Development Workflow)
------------------------------------------------------------------------
作業を開始してからマージされるまでの手順.
1. ローカルの最新化
・作業開始前は必ず `main` ブランチに切り替え,リモートの最新状態を取り込む.
・コマンド:
$ git checkout main
$ git pull origin main
2. 作業ブランチの作成
・最新の `main` から新しいブランチを作成して移動する.
・コマンド:
$ git checkout -b feature/01_new_function
3. 実装とコミット
・作業単位(意味のあるまとまり)ごとにコミットする.
・巨大なコミットは避け,レビューしやすい粒度を心がける.
・コマンド:
$ git add .
$ git commit -m "[add] 新機能を実装"
4. リモートへのプッシュ
・作業ブランチをリモートリポジトリへ送信する.
・コマンド:
$ git push origin feature/01_new_function
5. プルリクエスト (PR) 作成
・GitHub/GitLab 等のブラウザ上で PR を作成する.
・レビュワーを指定し,承認(Approve)されたら `main` へマージする.
4. コミットメッセージ (Commit Messages)
------------------------------------------------------------------------
4-1. 書式
・書式: `[タグ] 内容`
・言語: 日本語 (Japanese)
・句読点: 末尾に句点は不要.
4-2. タグ一覧
・[add]: ファイルや機能の追加
・[update]: 機能やデータの更新・修正
・[fix]: バグ修正
・[remove]: 削除
・[clean]: 整理,リファクタリング
5. トラブルシューティング (Troubleshooting)
------------------------------------------------------------------------
■ コンフリクト (Conflict) が発生した場合
他メンバーの変更と競合した場合の対処手順.
1. main の取り込み
・作業ブランチに `main` の最新内容をマージして競合箇所を洗い出す.
・コマンド:
$ git checkout main
$ git pull origin main
$ git checkout feature/XX_working
$ git merge main
2. 競合の解消
・エディタ上で `<<<<<<<`, `=======`, `>>>>>>>` で囲まれた箇所を手動で修正する.
・修正後,再度コミットしてプッシュする.
■ 間違えて main にコミットしてしまった場合
・まだプッシュしていない場合,コミットを取り消して新しいブランチへ移動させる.
・コマンド:
$ git reset --soft HEAD^
$ git checkout -b feature/XX_recover_branch
$ git commit -m "..."