人類に分散型バージョン管理システムは早すぎた

2026/7/29作成

Git の特徴として分散型バージョン管理システムであることがあげられます。この場合、Git 以前の主流であった Subversion や CVS が集中型バージョン管理システムであったことに対する対比として言われているわけですね。

分散型バージョン管理システムとはどういうことかというと、複数のリポジトリが並列に存在し、それぞれがお互いにブランチを push/pull しあうような関係をいいます。あるリポジトリのブランチがいいなということで pull してきて、手直しして push するというような運用ですね。こうした運用が出来ていれば分散型バージョン管理システムであるなと言えます。

ただ、現実の Git の運用は違いますよね。GitHub などの Git ホスティングサービス上に中央リポジトリが作成され、ローカルに作業用リポジトリがクローンされます。ローカルリポジトリでは commit が行われますが、これは事実上の仮 commit に過ぎません。GitHub に対して push すること、もしくは PR を master/main ブランチにマージすることが真の commit と言えるのではないでしょうか。そのような運用をしているなら、多少の手順の違いがあるとはいえ、Git を事実上集中型バージョン管理システムとして使っていると言えるんじゃないかなと思うんです。

だからといって Git を批判したいというわけではないのですが、Git の特徴として分散型バージョン管理システムですって言うのはどうかなぁと思います。機能としては確かに分散型バージョン管理システムなんですが、世間的な運用は集中型になってますよねぇという気持ちです。結論として、人類にとって分散型バージョン管理システムは早すぎたんじゃないかなと思います。そんなものは誰も求めてなかった、もしくは使いこなすことが出来なかったと。