バージョン管理の種類について
開発チームで作業していると、プロジェクトで似たようなコードを編集する場合があります。その結果、ソースのある部分で行われた変更が、同時に作業している別の開発者が行なった変更と矛盾する場合があります。
バージョン管理はこの種の問題を解決し、次のことを実現するのに役立ちます。
あらゆるファイルの完全な履歴により、前のバージョンに戻ってバグの原因を分析したり、古いバージョンの問題を修正したりすることができます。
一連の独立した変更に対して作業できるため、その作業をソースにマージして戻し、変更が競合しないことを確認できます。
各変更と、変更の目的や意図を説明するメッセージを追跡し、プロジェクト管理およびバグ追跡ソフトウェアに接続することができます。
バージョン管理には、集中型と分散型の 2 種類があります。
集中型バージョン管理
集中型のバージョン管理システムでは、サーバー側にプロジェクトの単一の「中央」コピーがあり、この中央のコピーに変更をコミットします。ローカル側に必要なファイルをプルしますが、プロジェクト全体のコピーをローカル側に配置することはありません。Subversion (SVN) や Perforce など、一般的なバージョン管理システムのいくつかは集中型です。
分散型バージョン管理
分散型バージョン管理システム (DVCS) では、プロジェクト ファイルの全バージョンの保管を中央サーバーに頼りません。代わりに、リポジトリのコピーをローカル側に複製することで、プロジェクトの全履歴を取得します。分散型バージョン管理システムの一般的なものでは、Git と Mercurial の 2 つが挙げられます。
ファイルの中央リポジトリを持つ必要はありませんが、他の人と共有してコラボレーションできるようにプロジェクトのコードを保管する「中央の」場所が必要な場合もあります。ここで役立つのが Bitbucket です。Bitbucket のリポジトリにコードのコピーを保存しておけば、自分だけでなくチームメイトも、ローカルで Git または Mercurial を使用してコードのプッシュとプルを実行できます。