エンジニア界隈にいて聞く日のない日はないと言っても過言ではない「Git」
そもそもGitとはなんぞや?
と周回遅れでもいいところですが、見ていきます。
この記事はgitの公式ドキュメントをベースに自分なりの補足を加えたものになります。
厳密な情報がほしい方は公式ドキュメントが優秀ですのでそちらをご覧下さい。
個人でのバージョン管理
最も簡単なバージョン管理の手法として、
「新規ドキュメント-2」
「新規ドキュメント_最新」
「新規ドキュメント_20190106」
などの更新ごとに「名前」で区別する方法があります。
この手のバージョン管理手法を「ローカル・バージョン管理システム」といい、
簡単に実行できますが、
「新規ドキュメント_最新(2)」
などと付けてしまったり、しまいには、最新版を上書きしてしまったりなど、
事故の多い手法です。
これを自動化したものにVCSというものがあります。
自動化したことにより前述の問題点はなくなりますが、基本的にこの手法では、複数人が同時に作業することはできません。
複数人でバージョン管理
そこで、変更の履歴を持っているVCSをウェブサーバー上など、複数人で管理できる状態にしたものをCVCS:集中バージョン管理システムと呼びます。
これで、複数人でもバージョンを管理しながら作業することができるようになりました。
ところが、サーバーなどが使用できない状態になると、誰も作業できないといった問題点が明らかになってきます。
複数人で個々にバージョン管理
そこで編み出されたのが、「DVCS:分散バージョン管理システム」です。
これに分類される仕組みとしてはGit、Mercurial、Bazaar、Darcsなどがあります。
変更の履歴を持っているVCSをサーバー上など、複数人で管理できる状態にし、さらに、作業者のローカル環境にそのコピーを作成することで、サーバー依存に起因する問題点を解決しています。