はじめまして、今回NIC BLOGを担当させていただきます
東京本部所属の岩手のしてぃ★ぼーいです!
今回は、現在プロジェクトで使用している【Git】についてご紹介します。
★Gitとは
Gitは、ソースファイルやドキュメントなどの変更履歴やバージョンを記録・追跡するための 分散型バージョン管理ツールです。
バージョン管理のツールとして、SVNやCVS等がありますが 今回は「GitとGitLabでのバージョン管理の流れ」に着目してご紹介します。
※GitLabは、Gitを使用した開発者を支援するためのWebサービス
★Gitの構成
Gitでは、「リポジトリ」と呼ばれるものでソースファイルの変更履歴やバージョンを管理しています。リポジトリには、「リモートリポジトリ」と「ローカルリポジトリ」があります。
この2つを簡単に説明すると、
リモートリポジトリ:ソースファイルとその変更履歴を複数人で共有・管理するために使用するもの
ローカルリポジトリ:ソースファイルやその変更履歴を個人で管理するために使用するもの
となります。
★GitとGitLabでのバージョン管理の流れ
①リポジトリ作成
まず初めに、資材管理者はリポジトリを作成します。リポジトリの作成は、GitLabにて行います。
ここで作成したリポジトリをリモートリポジトリ(共有用)とします。
(作成と同時にソースファイルをリポジトリに登録したと仮定して以下の手順を説明します。)
②個人用リモートリポジトリ作成
開発者は、①で作成したリモートリポジトリを元に自分専用のリモートリポジトリ(個人用)を作成します。
自分専用のリモートリポジトリを作成することをGitでは、フォーク(fork)すると呼びます。
③リモートリポジトリ(個人用)をローカルにコピー
開発者は、GitLabのURLを元に資材をローカルにコピーします。
ローカルにコピーすることをGitでは、クローン(clone)すると呼びます。
クローンを行うと開発者のローカル端末にリモートリポジトリ(個人用)がクローンされます。
クローンしたリポジトリは、ローカルリポジトリになります。
④修正したソースファイルをローカルリポジトリに反映
開発者が修正したソースファイルをローカルリポジトリに反映させます。
ローカルリポジトリに反映させることをGitでは、コミット(commit)すると呼びます。
コミットするタイミングで変更履歴に表示するためのコメントを残しておくことができます。
コミットを行うと変更履歴とともにローカルリポジトリに反映されます。
⑤ローカルリポジトリからリモートリポジトリ(個人用)に反映
開発者がローカルリポジトリにコミットした内容をリモートリポジトリ(個人用)に反映させます。
リモートリポジトリに反映させることをGitでは、プッシュ(push)すると呼びます。
プッシュを行うと変更履歴を付与したソースファイルの情報と共にリモートリポジトリ(個人用)に反映されます。
⑥リモートリポジトリ(個人用)からリモートリポジトリ(共有用)に反映
リモートリポジトリ(個人用)からリモートリポジトリ(共有用)に反映させるために
開発者はGitLab上で資材管理者に対して「マージリクエスト」を行います。
マージリクエストとは、開発者が資材管理者に対してソースファイルのレビュー依頼をお願いするようなイメージです。
マージリクエストを依頼して資材管理者が確認し、問題なければリモートリポジトリ(共有用)に反映されます。
ここまでが、Gitでのバージョン管理を行うための流れを紹介しましたが、資材管理を行う他のツール(SVN,CVS)もほとんど流れは同じです。
Gitでは、各開発者のローカル端末に全履歴を含んだリポジトリの完全なコピーが作られます(クローン)。したがってネットワークにアクセスできないなどの理由で リモートリポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができます。これが「分散型」と呼ばれる理由です。
次回は、このあたりの話を実体験をもとに紹介できればと思っています。