分散型バージョン管理と集中型バージョン管理

分散型バージョン管理と集中型バージョン管理について

●バージョン管理とは

特定のディレクトリやファイルに対して、更新内容の記録を時系列で管理すること

バージョン管理をすることで、誰が、いつ、どのファイルのどんな内容を更新したかを簡単にわかるようになる

バージョン管理には分散型バージョン管理と集中型バージョン管理がある

●分散型バージョン管理とは

専用のサーバー上にリモートリポジトリを配置し、管理する方法

メンバー全員も自分のマシンにローカルリポジトリを持っている

・分散型バージョン管理のメリット

・インターネットがなくてもローカルリポジトリにコミットできる

・自分のローカルリポジトリでいろいろ試してから、リモートリポジトリへプッシュするので、他のメンバーへの影響が少ない

・アクセス権の設定が不要

Gitは代表的な分散型バージョン管理システム

※現在は専用のサーバーを構築せず、GitHubのようなリモートリポジトリのホスティングサービスを使用することが多い

分散型バージョン管理の図解

●集中型バージョン管理とは

専用のサーバー上にリモートリポジトリを配置し、管理する方法

メンバー全員は自分のマシンにローカルリポジトリを待っていない

メンバー全員が1つのリモートリポジトリを共有で管理を行う

集中型バージョン管理のメリット

メンバーごとにローカルリポジトリを持たないので、シンプルでわかりやすい

集中型のデメリット

・リモートリポジトリはサーバー上に配置された為、インターネットがないとコミットできない

・1つのリモートリポジトリを共有で管理するため、自分のコミットが他のメンバーに影響が強い

・アクセス権の設定が必要

Subversionは代表的な集中型バージョン管理システム

集中型バージョン管理の図解

GitSubversionの操作方法

分散型Git、集中型SubversionGUICLIどちらでも操作することができる

GUI→グラフィカルユーザーインターフェース
   視覚的、直感的で操作が可能のため初心者に優しい

CLI→コマンドラインインターフェース
   直感的ではないですが、素早く操作できる