×
開発技術と開発管理

バージョン管理システムは、ファイルの「誰が・いつ・何を・なぜ変更したのか」という履歴を記録し、いつでも過去の状態に戻せるようにする仕組みです。代表的なものに、かつて主流だった「集中型(Subversionなど)」と、現在主流の「分散型(Gitなど)」があります。集中型は、サーバー上の1つのリポジトリを全員で共有するため管理がシンプルですが、ネットワーク環境がないと作業ができません。一方、分散型は、開発者各自のローカル環境にリポジトリの完全なコピー(ローカルリポジトリ)を作成して作業するため、オフラインでも高速に動作します。分散型では、各自が「ブランチ」を作成して本番コードに影響を与えずに並行開発を行い、作業完了後に「マージ」を行ってコードを統合します。もし同じ箇所の編集が衝突した場合は「コンフリクト(競合)」が発生し、開発者が手動で内容をすり合わせて解決します。

試験でのポイント

試験では、バージョン管理の目的やGitなどの基本的な操作・用語の定義が問われます。「リポジトリ(保管庫)」「コミット(変更の確定)」「ブランチ(分岐)」「マージ(統合)」といった概念を正確に理解しておく必要があります。特に、複数人で共同開発を行う際に、同じファイルを同時に更新したときの上書き問題を防止する仕組み(排他制御や競合マージの解決)についての説明が求められます。また、何かトラブルが発生したときに「特定のコミット時点の状態に巻き戻す(ロールバックする)」ことが可能になるという運用上のメリットもポイントです。

関連する用語

プログラム変更履歴を安全に統合するためのCI/CDや、アジャイル開発の各スプリントにおける安全な並行開発を支える基盤となります。また、システム全体の変更リスクを評価・承認する変更管理プロセスとも関わっています。