コード管理を始める
(トップページはこちら)
GitLabは、コードの作成から配信まで、ソフトウェア開発ライフサイクル全体をカバーするツールセットを提供します。本記事では、GitLabにおけるコードの作成と管理の実践的なプロセスを、5つのステップで解説します。
1. リポジトリの作成
GitLabにおいて、プロジェクトとリポジトリは異なる概念です。
- リポジトリ: ソースコードのバージョン管理に焦点を当てた場所です。コード、ドキュメント、その他のファイルを保存し、変更履歴を追跡します
- プロジェクト: リポジトリを含む、開発ライフサイクル全体のための包括的な環境です。課題の追跡、マージリクエストの管理、CI/CDパイプラインの自動化など、多様な機能を提供します
各プロジェクトには必ずリポジトリが含まれており、これが開発作業の出発点となります。
2. コードの記述
GitLabでは、開発スタイルやチームの要件に応じて、複数の開発環境から選択できます。
2.1 ブラウザベースの開発
GitLab UIを使用して、ブラウザ上で直接開発できます。
- Webエディタ: 単一ファイルの編集に適したプレーンテキストエディタです。シンプルな変更や小規模な修正に最適です
- Web IDE: より機能豊富なエディタで、複数ファイルの編集が可能です。本格的な開発作業にも対応できます
2.2 ローカル環境での開発
Gitを使用してリポジトリをコンピュータにクローンし、お好みのIDEで開発できます。GitLabエディタ拡張機能を使用すれば、GitLabとのやり取りをスムーズに行えます。
2.3 リモート開発環境
リモート開発環境を起動して、クラウドから作業することも可能です。ワークスペース機能を使えば、異なるプロジェクトが互いに干渉しないよう、独立した開発環境を複数作成できます。
2.4 開発を支援する機能
- UIからリポジトリに直接ファイルを作成
- Code Suggestionsによる高速なコード記述支援
3. 変更の保存とGitLabへのプッシュ
変更の準備ができたら、GitLabにコミットして、チームの他のメンバーと共有します。
3.1 マージリクエストの仕組み
変更をコミットするプロセスは、ローカルの自分のブランチから、GitLab上のデフォルトブランチへファイルをコピーすることです。このブランチ間のコピーを実現するのがマージリクエストです。
3.2 マージリクエストの作成方法
マージリクエストの作成方法は、コードを作成した場所と使用するツールによって異なります。
- Gitを使用: コマンドラインからマージリクエストを作成
- UIを使用: ファイルの追加、編集、アップロード時に、画面上からマージリクエストを作成
いずれの方法でも、ソースブランチの内容をターゲットブランチへ統合することを提案する、という基本的な考え方は同じです。
4. コードレビューの実施
マージリクエストを作成すると、チームメンバーにレビューを依頼できます。コードレビューは、コードの品質と一貫性を維持するだけでなく、チームメンバー間で知識を共有する重要な機会です。
4.1 レビュープロセス
マージリクエストには、提案された変更とマージ先のブランチとの差分が表示されます。レビュアーは以下のアクションを実行できます。
- 変更内容を確認し、特定のコード行にコメントを残す
- diff内で直接変更を提案する
- 変更を承認するか、マージ前に追加の変更を要求する
GitLabはレビューステータスを追跡し、必要な承認が得られるまでマージを防ぎます。
4.2 保護ルールによる品質管理
組織には、特定の承認を要求したり、特定のアクションを防止したりする保護ルールが設定されている場合があります。
一般的な保護ルールの例
- 変更しているファイルについて、コードオーナーからの承認が必要
- マージリクエストがマージされる前に、一定数の承認が必要
これらのルールにより、重要なコードが適切なレビューを経ることが保証されます。
5. マージリクエストのマージ
変更をマージする前に、マージリクエストは通常、他の人による承認と、合格したCI/CDパイプラインが必要です。
5.1 マージ前のチェックポイント
要件は組織ごとにカスタマイズされていますが、通常は以下を確認します。
コード品質の確認
- コード変更が組織のガイドラインに準拠しているか
- コミットメッセージが明確で、関連する課題にリンクしているか
技術的な制約
- 保護されたブランチやその他のリポジトリ保護措置により、直接マージが防止されたり、追加の手順が必要になったりする場合があります
- マージできない場合は、チームに保護ルールについて確認してください
5.2 マージコンフリクトの解決
マージコンフリクトは、ブランチを作成した後、ターゲットブランチにマージする前に、他の誰かが同じファイルを編集した場合に発生します。
マージする前に、すべてのコンフリクトを解決する必要があります。GitLabは、コンフリクトが発生した箇所を明示し、解決をサポートします。
6. まとめ
GitLabでのコード管理は、以下の5つのステップで構成されています。
- リポジトリの作成: プロジェクトとリポジトリを理解し、開発の基盤を整える
- コードの記述: ブラウザ、ローカル、リモートから最適な開発環境を選択する
- 変更の保存とプッシュ: マージリクエストを作成し、変更を提案する
- コードレビュー: チームメンバーと協力して、コードの品質を高める
- マージ: 承認とCI/CDパイプラインを経て、変更を統合する
このワークフローにより、チームは一貫したプロセスで協働し、コードの品質を維持しながら、効率的に開発を進めることができます。保護ルール、コードオーナー、承認フローなどの機能を活用することで、組織の要件に合わせた柔軟な開発体制を構築できます。
