ソーダ色の研究

フロントやらバックやらなんやら

分散型バージョン管理システムとは

そもそもバージョン管理システムとは

機能追加やバグの修正毎のソースコードの状態を記録し、それぞれのバージョンのソースコードを管理するためのソフトウェアの事。要するに、ファイルの変更履歴を管理するためのシステム。

主なバージョン管理システム

集中型(SVN) VS 分散型(Git)

バージョン管理システムには、集中型と分散型がある。 集中型の有名どころはSVN、分散型の有名どころはGit。 分散型のほうが後発で、結論から言えば、ぶっちゃけこっちのほうが優れてると言わざるを得ない。知らんけど。

集中型とは

リポジトリ(ファイルそのものや変更履歴を保存する場所)が1つ。中央リポジトリからコードを持ってきて編集して、終わったら中央リポジトリに反映。ローカルとリポジトリが置かれたサーバーで、commit(登録)update(取得)をやりとりする。

分散型とは

リポジトリを複数持てる。サーバー上にリモートリポジトリを置いて、開発者はそれぞれローカルにリポジトリを持つ、みたいな構成が可能。リポジトリを複数持つ事によって、集中型にはない様々なメリットがある。

分散型のメリット

分散型では、リモートリポジトリのコピーをクローンして、ローカル上にそのプロジェクトの完全な履歴を持つことができる。(ローカルリポジトリ) そうする事によって、 - ファイルを変更するたびにリモートサーバーにアクセスする必要がないため、高速に操作できる。(addとかcommitとか。pushとかpullの時だけリモートにアクセス) - ネットつながってなくてもcommit可能。 - 変更を加えてcommitをするたびに、それが開発者全員にさらされるなんてこともない。 …など

結論

Git最高。まだまだGitの知らない機能も多いので、頑張って習得したい。