Gitによるファイルのバージョン管理
2022/12/23
こんにちは!今週のコラムを担当する山中です。
今週のコラムは
Gitによるファイルのバージョン管理
をテーマにお話しさせていただきます。
〇ファイルのバージョン管理って?
一つのプロジェクトを多人数で進めていく場合、
同一のファイルに対して、複数人が開発を行う事が多々あります。
こういった場合に、先に作った人の内容を後から作った人が別の内容で上書きしたら大変です。
そういった事故が起こらないようにする仕組みがバージョン管理です。
バージョン管理では、
・作成日時/変更日時
・変更点などの履歴
・作成者情報
・コメント
などを記録できます。
これにより、何度も変更を加えたファイルであっても、過去の状態や変更内容を確認したり、
変更前の状態を復元することが出来ます。
また、ファイルへのアクセス制限の機能による同じ部分へ変更を回避することもできますので
誤って、前の人の修正内容を消してしまうという事が起こりにくくなります。
〇集中管理方式/分散管理方式って?
上記で記載したバージョン管理システムは大きく分けて2つに分類されます。
「集中管理方式」
ファイルのバージョン管理を専用サーバに一元管理する方法です。
サーバ上に「レポジトリ」と呼ばれるバージョン管理用のフォルダを作り、
ユーザ側のPCにクライアントソフトを導入する事で利用可能になります。
集中管理方式では、「コミット(チェックイン)」するごとにバージョンが加算、
リポジトリ内のバージョンが自動的に増えていきます。
ここでの「コミット(チェックイン)」とは、ファイルをアップロードする事で、
逆にサーバからファイルをダウンロードすることを「チェックアウト」と呼びます。
集中管理方式ではサーバ上でファイル情報を一括管理するため、サーバにつながっていない状態では
ファイルの変更情報を記録できません。
「CVS」や「SVN」などのシステムが多く利用されていました。
「分散管理方式」
サーバ上に置いた「リポジトリ」でファイル情報を一括管理する集中管理方式に対し、ユーザーが
それぞれPC内に「リポジトリ」のコピーを持つ方式を分散管理方式と呼びます。
ファイルが更新されると、まずそれぞれのPC内にある「ローカルリポジトリ」で
ファイルの変更を記録します。
作業が進んだら、サーバ上の「リモートリポジトリ」に「Push」します。
ここでの「Push」とは「ローカルリポジトリ」から「リモートリポジトリ」に
変更内容を反映させることで、逆に「リモートリポジトリ」から変更履歴を
取得することを「Pull」と呼びます。
ユーザーがそれぞれ自分のPC内に「リポジトリ」を保持しているため、ネットワーク・サーバに
アクセスできなくても作業ができるのが特徴です。
システム開発においては、複数人が分散して開発するという近年のニーズとマッチした、
分散管理方式の「Git」や「Mercurial」などが主流となっています。
〇まとめ
いかがでしたでしょうか。
色々な人がかかわるプロジェクトを管理する方法としてバージョン管理システムを
使っていく機会は増えています。
次回はGitの使い方やインストール方法などを説明出来たらと考えています。
----------------------------------------------------------------------
株式会社AQUARIZE
〒531-0072
大阪市北区豊崎3-6-8 TOビル404
電話番号 : 06-7777-2927
----------------------------------------------------------------------