# GitLab作業手順書について ## 環境設定について * コミット名に課題番号を自動付与する設定を行います * リポジトリ直下にある「.git/hooks」フォルダを開きます * 「prepare-commit-msg.sample」をコピーして「prepare-commit-msg」を作成します <kbd><img src="https://i.imgur.com/tndiwoj.png"></kbd> * 「prepare-commit-msg」を下記の通り変更して下さい ```bash:prepare-commit-msg #!/bin/sh TICKET_PREFIX=${TICKET_PREFIX:-#} message_file=$1 mode=$2 if [ "$mode" = "" ] || [ "$mode" = "message" ] ; then ticket_number=`git branch | grep "*" | awk '{print $2}' | sed -e 's/.*-//g'` if [ "$ticket_number" != "" ]; then mv $message_file $message_file.tmp echo -n "$TICKET_PREFIX$ticket_number " > $message_file cat $message_file.tmp >> $message_file fi fi ``` * 設定は以上です * これでコミット時にブランチ名の番号が自動でコミット名の先頭に追加されます <kbd><img src="https://i.imgur.com/CxvvDY6.png"></kbd> * コミット名に「#課題番号」が含まれる事で、GitLab内で課題とコミットを関連付ける事が出来ます *** ## 作業手順について ### 手順1. スケジュール表から課題を作成する(担当:作業依頼者) * スケジュール表を確認し、作業内容を確認します。 * GitLabのリポジトリの「課題」画面から課題を作成します <kbd><img src="https://i.imgur.com/bc6T3zI.png"></kbd> * 「New issue」をクリックします <kbd><img src="https://i.imgur.com/tr15avC.png"></kbd> * 「New Issue」画面から以下の内容を入力します | 名称 | 意味 | 記載例 | | :--- | :--- | :--- | | Title | 課題のタイトル | スケジュール表の小項目を貼り付けします | | Description | 課題の内容 | 実装内容を箇条書きで入力します<br>Markdownで記載し、Previewで確認して下さい | | Assignee | 担当者 | スケジュール表の担当者を設定します | | Due date | 課題の期限 | 予定工数を基に課題の期日を設定します | | Milestone | マイルストーン | 作業の種類に合わせてマイルストーンを設定します | | Labels | ラベル | 「未実装」に設定します | <kbd><img src="https://i.imgur.com/jRpj2Gq.png"></kbd> **マイルストーンについて** | 名称 | 該当作業 | | :--- | :--- | | 要件定義 | 本来はクライアントがシステムに求める機能をまとめてシステムの<br>仕様を決める工程を指しますが、今回は企画になります<br>該当作業:企画書作成など | | 外部設計 | ユーザーから見えるUI部分の仕様を決定する工程を指します<br>該当作業:ワイヤーフレーム,画面遷移図,画面設計図作成など | | 内部設計 | 外部設計を基に目に見えないシステム内部の設計をする工程を指します<br>該当作業:クラス図,ER図作成など | | 実装 | 実装処理全般 | | テスト | デバック作業全般 | | リリース | 完成後に発生する作業全般 | **ラベルについて** | ラベル名 | 内容 | | :--- | :--- | | 未実装 | 課題の未対応時に設定する | | 処理中 | 課題の作業中に設定する | | 完了 | 課題の完了時に設定する | * 課題内容を設定後「Submit issue」を押下します * 作成した課題の番号が、スケジュール表の課題番号と同じ事を確認して下さい *** ### 手順2. 作業ブランチとマージリクエストを作成する(担当:作業依頼者) * 作成した課題を開きます ※ブランチ上で作業しない課題については、**手順2は不要**です。 (企画書作成、クラス図作成…など) <kbd><img src="https://i.imgur.com/bqabgD5.png"></kbd> * 「Create merge request」のプルダウン「▼」を押下します <kbd><img src="https://i.imgur.com/unonXAx.png"></kbd> * 「課題番号」を確認します <kbd><img src="https://i.imgur.com/i1xSdW1.png"></kbd> * 「ブランチ名」を「feature-課題番号」となるよう設定します * 「Source」を「develop」となるよう設定します * 「マージリクエストを作成」を押下します <kbd><img src="https://i.imgur.com/IAJemdo.png"></kbd> **ブランチの命名規則について** | ブランチ名 | 役割 | 派生元 | マージ先 | | :--- | :--- | :---: | :---: | | master | 公開するものを置くブランチ | | develop | 開発中のものを置くブランチ | master | master | | feature-* | 新機能開発中に使うブランチ | develop | develop | <span style="color: red;">※「*」には課題番号が入ります</span> * 作業ブランチとマージリクエストが生成されたことを確認して下さい * 作業者に課題番号を連絡して終了です *** ### 手順3. 課題に着手する(担当:作業者) * 作業依頼者から指示された課題(作業内容や期日など)を確認します * 課題のラベルを「処理中」に変更します <kbd><img src="https://i.imgur.com/1Xi4h1h.png"></kbd> * GitHubDesktopにて、ブランチを「feature-課題番号」に変更します * 対象のブランチが表示されない場合は「Fetch origin」を押下して、更新して下さい <kbd><img src="https://i.imgur.com/voO5gno.png"></kbd> * ブランチに変更内容がある場合、ブランチを切り替える前に変更内容をコミットするか破棄する必要があります * 変更内容をそのブランチに維持する場合はコミットして下さい(手順4を参照) * 変更内容を破棄する場合は「Discard all changes」を選択します <kbd><img src="https://i.imgur.com/8cnsF16.png"></kbd> * ブランチを変更後、課題の作業内容を実装して下さい * Gitはコミットすることで変更内容を保存できます * コミットは作業完了時だけでなく、授業終了時や区切りのよい時にコミットしてください(手順4を参照) *** ### 手順4. 作業内容をコミット(保存)する(担当:作業者) * 作業内容をコミットします * GitHubDesktopを開きます * 「Changes」タブの一覧に新しく変更されたファイル一覧が表示されます * コミット内容はサーバ経由で他のメンバーに共有されます * 共有したい変更ファイルのみ✅が入っている事を確認して下さい * 個人的なUnityの設定ファイルなど、共有する必要がないファイルは✅を外します * 「Summary」にコミットのタイトルを入力します(例:移動処理まで実装…など) * 「Commit to ブランチ名」を押下してコミットします <kbd><img height="600" src="https://i.imgur.com/ecYCfWK.png"></kbd> * 「History」タブからコミット履歴を確認します * 本書の「環境設定について」がしっかり反映されていれば、先程コミットしたタイトルの左側に「#課題番号」が自動で追加されます * コミット名が「ステージ修正」であれば「#9 ステージ修正」のように追加されます <kbd><img src="https://i.imgur.com/YR96N1N.png"></kbd> <kbd><img src="https://i.imgur.com/jRFyrpB.png"></kbd> * コミット名に#課題番号が付与される事で、GitLab内で課題とコミットを関連付ける事が出来ます <kbd><img src="https://i.imgur.com/9naA9LR.png"></kbd> *** ### 手順5. コミット内容をPush(アップロード)する(担当:作業者) * コミットしただけではサーバに反映されません * コミットした内容をサーバ(GitLab)にアップロードします * 「Push origin」を押下します <kbd><img src="https://i.imgur.com/FqOjO3s.png"></kbd> *** ### 手順6. 作業完了報告をする(担当:作業者) * 作業指示者に作業が完了した旨を報告して下さい *** ### 手順7. マージする(担当:作業指示者) * 作業者から作業完了報告を受けたらマージリクエストを確認します <kbd><img src="https://i.imgur.com/dAJ4w5w.png"></kbd> * 「Commits」タブからコミット履歴を確認して下さい * 「Changes」タブからファイルの変更一覧を確認し、無駄な変更ファイルが無いことを確認して下さい <span style="color: red;">※必要に応じて作業ブランチに切り替え動作確認をして下さい</span> * マージ先が「develop」であることを確認します * 今後作業ブランチが必要なければ「Remove source branch」に✅を入れます (作業ブランチを削除しても、また同名ブランチを作成する事は可能です) <kbd><img src="https://i.imgur.com/XCt5wKX.png"></kbd> * 「Merge」を押下してマージ完了です *** ### 手順8. 課題をCloseする(担当:作業指示者) * マージ完了後、課題のラベルを「完了」に変更します * 課題を「Close issue」して課題完了になります <kbd><img src="https://i.imgur.com/Qm0VgEM.png"></kbd> *** ## 変更履歴 以上