GitLab with Git Fundamentals - ハンズオンラボ: GitLab を使ってコードをマージする

このハンズオンガイドでは、プロジェクト・Issue・マージリクエストの作成方法を説明します。

完了までの推定時間: 40 分

目標

このラボでは、GitLab を使ってプロジェクト・Issue・マージリクエストを作成します。また、組み込みの GitLab Web IDE を使ってファイルを編集し、マージリクエストを検証します。GitLab は、Git 単体を使うよりも簡単にリポジトリを管理できる包括的な UI を提供しています。GitLab には、マージリクエストへのインラインコメントなど、Git 言語自体がサポートしていない様々な機能も含まれています。詳細は GitLab 機能ページをご覧ください。

タスク A. 新しいプロジェクトを作成する

  1. ページ上部のブレッドクラムで My Test Group をクリックして移動してください。

  2. GitLab の My Test Group から New project ボタンをクリックしてください。

  3. Create blank project タイルをクリックしてください。

  4. プロジェクト名に Second Project と入力してください。

  5. プロジェクトの可視性が Private に設定されていることを確認してください。

  6. Initialize repository with a README チェックボックスにチェックを入れます。

  7. Enable Static Application Security Testing (SAST) のチェックを外したままにします。

  8. Create project ボタンをクリックし、GitLab が新しいプロジェクトのメインページにリダイレクトするまで待ちます。

タスク B. 新しい Issue を作成する

  1. 左側のナビゲーションペインで Plan > Issues をクリックしてください。

  2. New issue ボタンをクリックしてください。

  3. Title フィールドに new issue と入力してください。

  4. Assignees ドロップダウンの横にある Assign to me をクリックしてください。

  5. Create issue ボタンをクリックしてください。

タスク C. マージリクエストを作成する

マージリクエストは、リポジトリ内のドキュメントを更新する提案を行えるため、GitLab によるソース管理のコア機能です。マージリクエストの詳細についてはドキュメントをご覧ください。

  1. Issue 詳細ページで Create merge request ボタンの右側にあるドロップダウン矢印をクリックしてください。ここでマージリクエストをカスタマイズできます。

  2. Branch namefix-issue に設定します。Sourcemain に設定されていることを確認してください。

    Source の値は、マージリクエストの変更が適用される場所を定義します。この例では、main ブランチに適用される変更を行っています。

  3. Create merge request ボタンをクリックしてください。

  4. Create merge request をクリックすると、New merge request ページにリダイレクトされます。

  5. マージリクエストのタイトルが Draft: Resolve "new issue" に設定されていることを確認してください。

    デフォルトでは、マージリクエストのタイトルは Draft: Resolve "<Issue Name>" の形式になります。

  6. Title の下に Mark as draft というチェックボックスがあります。このチェックボックスが現在チェックされていることを確認してください。

    マージリクエストが作成されると、デフォルトでドラフトとしてマークされます。マージリクエストのタイトルの Draft キーワードは、マージが現在ドラフトであることを示しています。ドラフトのマージリクエストは、準備完了とマークされるまでマージできません。これにより、誤ってマージされることを防ぎます。

  7. マージリクエストの説明に Closes #1 というテキストがあることを確認してください。この説明により、マージリクエストをマージすると、関連する Issue も自動的にクローズされます。

    # 文字の隣に異なる番号が表示される場合があります。この番号は、マージリクエストが開かれた Issue 番号に一致します。

  8. すべてのマージリクエストフィールドをデフォルト値のままにします。

  9. このラボではすべてのメタデータ値をデフォルト値のままにしますが、それぞれの意味を理解しておくことが重要です:

    • Assignees: アサイニーはマージリクエストの変更の作成・維持を担当する人です。

    • Reviewers: レビュアーはマージリクエストの変更をレビューして承認する責任を持つ人です。

    • Milestone: GitLab のマイルストーンは、特定の期間内に達成すべき広い目標に向けて作成された Issue とマージリクエストを追跡する方法です。通常はリリースやバージョン番号に関連しています。

    • Labels: マージリクエストにラベルを適用してください。ラベルはリクエストの並べ替えやフィルタリングに使用できるメタデータタグです。

    • Merge request dependencies: マージリクエストが正しい順序でマージされることを保証し、コミットの競合を防ぎます。

    • Delete source branch when merge request is accepted: このオプションを選択すると、マージ元のブランチが削除されます。選択しない場合は保持されます。

    • Squash commits when merge request is accepted: このオプションを選択すると、すべてのコミットの変更を含む 1 つのコミットのみがこのブランチから表示されます。選択しない場合は、このブランチからのすべてのコミットが履歴に追加されます。

  10. 画面下部の Create merge request ボタンをクリックしてください。

マージリクエストを作成すると、実行する必要のある 1 つの作業に関連する 3 つのリンクされたアイテムができました: Issue・ブランチ・マージリクエストです。Issue は実行する作業を説明し、ブランチは Issue に対処する変更を含み、マージリクエストは変更を main コードブランチに組み込む方法を提案します。

タスク D. GitLab の Web IDE を使用してブランチのファイルを編集する

Issue で必要な変更に対処するために、コードブランチのファイルを編集できます。ブランチのファイルを編集する方法は多数あります。前のラボでは、ファイルをローカルで編集する方法を学びました。このラボでは、Web IDE を使ってオンラインでファイルを編集します。Web IDE はコミットのステージングを備えた高度なエディタです。Web IDE を使用すると、GitLab UI から直接複数のファイルを変更できます。詳細についてはドキュメントをご覧ください。

  1. マージリクエストページの右上で Code の右側にある矢印をクリックし、Open in Web IDE をクリックしてください。

  2. 左側のファイルエクスプローラーで README.md をクリックしてください。

  3. ファイルの 3 行目に Edit my README.md file と入力してください。

  4. IDE の左ペインで Source control ボタン(ミニ Git ブランチグラフのように見えます)をクリックしてください。

  5. Commit MessageUpdated the README.md file と入力してください。

  6. Commit ボタンをクリックしてください。

  7. 画面右下に Success! Your changes have been committed という通知ボックスが表示されます。右下の通知ボックスから Go to project オプションをクリックしてください。

    このダイアログボックスが消えた場合は、画面左下の GitLab アイコンをクリックしてプロジェクトに戻ることができます。このボタンをクリックすると、さまざまなオプションを含むダイアログが画面中央に表示されます。Go to Second Project project on GitLab をクリックしてください。

  8. プロジェクトのランディングページから Code > Merge requests をクリックしてください。マージリクエストの名前をクリックしてください。

タスク E. マージリクエストで変更を検証する

  1. マージリクエストページで右上の Assignee セクションを確認します(ペインを展開するために画面右上のダブル矢印をクリックする必要がある場合があります)。マージリクエストが自分自身に割り当てられていることを確認してください。割り当てられていない場合は Assignees > Edit をクリックし、表示されたリストから自分のユーザー名をクリックしてください。リストの外をクリックして変更を適用してください。

  2. マージリクエストタイトルのすぐ下にある Changes タブをクリックしてください。

  3. テーブルの左側(コミットの変更内容)の 3 行目にカーソルを置き、コメントアイコンをクリックしてください。

  4. コメントフィールドに This is a comment と入力し、Start a review をクリックしてください。

    レビューを開始すると、コメントはレビューを送信するまで自分にしか表示されません。

  5. 通常はすべてのコメントを追加してから一度に送信しますが、このラボでは Finish review ボタンをクリックしてください。

  6. 表示されるダイアログに Summary comment テキストボックスがあります。これはレビューにサマリーを追加するためのオプションフィールドです。このレビューには Added comment to README.md というコメントを追加してください。

  7. Summary comment の下に 3 つのラジオボタンがあります。レビューには一般的なフィードバックのみが含まれているため、Comment をクリックしてください。

    • Comment: レビューに一般的なフィードバックが含まれていることを示します。このオプションはマージリクエストを承認しません。

    • Approve: 多くのプロジェクトでは、マージリクエストをマージする前にレビュアーが承認する必要があります。このオプションはフィードバックを送信し、マージリクエストを承認します。

    • Request changes: レビューにマージ前に対処すべきフィードバックが含まれていることを示します。

  8. Submit review ボタンをクリックしてください。

  9. 誰かがコメントを見て、対処するための別のコミットを追加したと仮定します。コメントが処理されたことを示すために Resolve thread ボタンをクリックしてください。

タスク F. ブランチをマージしてマージリクエストをクローズする

  1. MR タイトルの下にある Overview タブをクリックしてください。

  2. マージリクエストをマージ可能な状態にするために Mark as ready をクリックしてください。これにより MR のタイトルから Draft: が削除されます。

    このラボでは、このプロジェクトに承認者を指定していません。承認者がいた場合は View eligible approvers セクションに Approve ボタンが表示されます。

  3. Delete source branch チェックボックスが有効になっていることを確認し、Merge ボタンをクリックしてください。

  4. 左側のナビゲーションペインで Code > Repository をクリックして、プロジェクトのリポジトリに戻ってください。

  5. ページ左上のドロップダウンでどのブランチにいるかを確認してください。main にいない場合は、ブランチ名をクリックして main ブランチをクリックして切り替えてください。

  6. リポジトリのデフォルトビューには README.md の内容が表示されるため、マージによって README.mdEdit my README.md file が追加されていることを簡単に確認できます。

ラボガイド完了

このラボ演習が完了しました。このコースの他のラボガイドを見ることができます。

ご提案は?

ラボへの変更を提案したい場合は、マージリクエストを通じて送信してください。