バージョンコントロールとは?

ソースコード管理(SCM)システムとしても知られるバージョン管理システム(VCS)を使うと、コードベースへのすべての変更を追跡することができます。

バージョン管理システムにファイルを保管することで、すべての編集、追加、または編集、そしてそれらがいつ誰によって行われたかを確認することができます。

また、前の状態に戻して、ファイルへの変更を経時的に比較することもできます。 最近のソフトウェア開発では、バージョン管理は必須ツールです。 全員が変更を確認できるだけでなく、複数のユーザーが同じファイルで作業し、それぞれの更新をマージすることができるため、バージョンとリリースの管理をより簡単に行えるようになります。

VCS には主に、分散型と中央管理型の 2 種類があります。 中央管理型のシステムでは、ファイルはすべて中央のセントラルサーバーに保管されます。各ユーザーはファイルのローカルコピーを「チェックアウト」し、後で中央にあるソースオブトゥルース(信頼できる唯一のソース)と同期します。

ただし、このアプローチの主だったデメリットは、セントラルサーバーが単一障害点であるということです。 一方の分散型のバージョン管理システムでは、ファイルのコピーが複数存在するため、ソースオブトゥルースが複数存在することになります。

いずれのシステムを使用するにせよ、基本ステップには、ソースファイルのローカルコピーの更新、ローカルでの変更作業、そしてコミットという形態による、ほかのユーザーとの変更の共有が伴います。

継続的インテグレーションの実装CI/CD パイプラインの構築を行うには、まず最初に、アプリケーションを構築するためのすべてのファイルを、誰もがアクセスできる単一のバージョン管理リポジトリに保管する必要があります。

そうすることで、全員が定期的に変更を共有できるようになり、それによって変更へのフィードバックを迅速に提供するための自動化ビルドとテストプロセスが開始されます。

テスト環境や本番環境で問題が起きた場合は、その問題を引き起こしたコミットを特定し、リビジョン履歴を使用して、実際に何が変更されたのかを理解することができます。