分散型バージョン管理システムとは
そもそもバージョン管理システムとは
機能追加やバグの修正毎のソースコードの状態を記録し、それぞれのバージョンのソースコードを管理するためのソフトウェアの事。要するに、ファイルの変更履歴を管理するためのシステム。
主なバージョン管理システム
- CNS
- SVN
- Git
集中型(SVN) VS 分散型(Git)
バージョン管理システムには、集中型と分散型がある。 集中型の有名どころはSVN、分散型の有名どころはGit。 分散型のほうが後発で、結論から言えば、ぶっちゃけこっちのほうが優れてると言わざるを得ない。知らんけど。
集中型とは
リポジトリ(ファイルそのものや変更履歴を保存する場所)が1つ。中央リポジトリからコードを持ってきて編集して、終わったら中央リポジトリに反映。ローカルとリポジトリが置かれたサーバーで、commit(登録)update(取得)をやりとりする。
分散型とは
リポジトリを複数持てる。サーバー上にリモートリポジトリを置いて、開発者はそれぞれローカルにリポジトリを持つ、みたいな構成が可能。リポジトリを複数持つ事によって、集中型にはない様々なメリットがある。
分散型のメリット
分散型では、リモートリポジトリのコピーをクローンして、ローカル上にそのプロジェクトの完全な履歴を持つことができる。(ローカルリポジトリ) そうする事によって、 - ファイルを変更するたびにリモートサーバーにアクセスする必要がないため、高速に操作できる。(addとかcommitとか。pushとかpullの時だけリモートにアクセス) - ネットつながってなくてもcommit可能。 - 変更を加えてcommitをするたびに、それが開発者全員にさらされるなんてこともない。 …など
結論
Git最高。まだまだGitの知らない機能も多いので、頑張って習得したい。