【入門】Gitってなんだ?

プログラミングを勉強していると度々目にするGitというワード。
本記事ではこのGitについて、「そもそもGitってなんだ?」という所から解説していきます。

Gitってなんだ?

Gitはバージョン管理システムの1つで、分散型バージョン管理システムと呼ばれています。
分散型バージョン管理システムとは何どういうものか?
それが生まれた背景を辿っていきましょう。

バージョン管理システムの歴史

ローカルバージョン管理システム(ローカルVCS)

多くの人はファイルを作成し、更新する時にこのような履歴を残してバージョン管理をするかと思います。(もしくは残さず上書き保存するかと思います。)

資料Aフォルダ
├ 資料A_ver1.xlsx
├ 資料A_ver2.xlsx
└ 資料A_ver3.xlsx

このバージョン管理を効率よく行うために、バージョン管理システム(VCS)が開発されました。
この段階でのVCSはデータベースが個人のPCに設定され、ローカルバージョン管理システムと呼ばれていました。

ローカルバージョン管理システムのイメージ

集中型バージョン管理システム(CVCS)

ローカルのVCSでは個人のPCにデータを残すため、複数人での開発に不向きでした。
そこで登場したのが集中型バージョン管理システム(CVCS)です。
CVCSでは全てのバージョン履歴がひとつのサーバーに保存され、それぞれの開発者が自分に必要なファイルを参照します。

集中型バージョン管理システムのイメージ


しかしCVCSにも弱点がありました。
それは障害への耐性です。
サーバーが停止すると、共同作業がストップしてしまいます。
また、サーバーが破損すると全てのデータが消えるのも問題です。

分散型バージョン管理システム(DVCS)

CVCSの課題を克服するために、分散型バージョン管理システム(DVCS)が登場しました。
DVCSではCVCSと同様にバージョンデータベースサーバーを設定しながら、開発者全員がそれぞれの個人PCにそれをミラーリングします。

この方式にすることで、サーバーが停止してもローカルのデータベースで作業を継続でき、サーバーのデータが破損してもローカルのデータで復元できるようになるため、影響を最小限に抑えられます。

分散型バージョン管理システムのイメージ


このDVCSのひとつがGitということです。

この記事が気に入ったらサポートをしてみませんか?