「Git」誕生から20周年を記念してリーナス・トーバルズ氏が開発初期の裏事情や使用頻度の高いコマンドなどを明かす

Git誕生20周年を記念したリーナス・トーバルズ氏へのインタビュー。Git開発の裏事情、BitKeeperとの決別、わずか10日間での開発、トーバルズ氏が多用するGitコマンドを紹介。

はじめに:Gitの誕生から20年

バージョン管理ソフトウェア「Git」が2025年4月7日に最初のコミットから20周年を迎えました。この記念すべき日に合わせて、GitHubがLinux・Gitの生みの親であるリーナス・トーバルズ氏へのインタビューを公開しています。

Gitは現在、世界中のソフトウェア開発者にとって欠かせないツールとなっていますが、その誕生の裏には興味深いエピソードがありました。トーバルズ氏はインタビューの中で、Gitの開発経緯や初期の開発状況、そして自身のGit使用習慣などについて率直に語っています。

Git誕生の背景:わずか10日間の開発

Gitの最初のコミットは2005年4月7日に行われました。当時、Linuxカーネルの開発プロジェクトでは商用バージョン管理ソフトウェア「BitKeeper」を使用していましたが、ライセンス上の問題で使用できなくなったことを受け、トーバルズ氏は自らの手でGitを開発しました。

GitHubでは現在もGitの最初のコミットを確認することができます。そのコミットメッセージには「地獄からやって来た情報マネージャー『Git』の最初のバージョン(Initial revision of "git", the information manager from hell)」と記されています。

トーバルズ氏はインタビューの中で、「Gitが最初のコミットを書き込める状態になってから20年が経過しました。20年が経過した現時点でもGitを使い続けて話題になり続けるなんてことを予想していましたか?」という質問に対して、次のように答えています:

Gitが**SCM(ソースコード管理システム)**の世界全体をこれほど席巻したことは、大きな驚きでした。私はGitを自分の問題を解決するものだと考えていましたし、もちろん、優れていると考えていました。20年前の今日、Gitがかなり未熟だった段階でさえ、CVSより優れていると考えていました。

同時に、CVSが市場にしがみついているのも見てきました。後にSVNが登場しましたが、それはCVSの別の姿に過ぎません。私はCVSを非常に嫌っていて使いたくありません。だから、自分のやり方でやろうと考えたのです。Bitkeeperが使えなくなり、『自分に合ったやり方でやろう、他人のことは気にしないでおこう』と考えました。Gitは最初の数カ月~数年間は『使いにくい』『直感的でない』というクレームが寄せられていました。その後、何かが起きました。まるでスイッチが入ったかのように。

BitKeeperとの決別:開発の真相

トーバルズ氏は「Gitを実際に使い始めるまでのコーディング作業は10日くらいでしたが、頭の中であれこれ検討する時間がたくさんあった」と述べています。BitKeeperとの決別に至った経緯について、次のように説明しています:

実際にGitをLinuxカーネルの開発に使えるようになるまでに要した期間は10日ほどでした。しかし、公平に言えば、Gitの開発プロセス全体の始まりは2004年の11月か12月なんです。

当時、BitKeeperはかなりうまく機能していました。BitKeeperは完璧ではありませんでしたが、私が試した他のプロダクトよりはるかに優れていました。しかし、BitKeeperは商用ソフトウェアであったため、Linuxカーネルの開発コミュニティでは全体的に歓迎されていませんでした。(BitKeeperの開発者である)ラリー・マクボイ氏がオープンソースに対して好意的であったため、BitKeeperはオープンソースプロジェクトで使う分には無料でした。一方でマクボイ氏はBitKeeperを大企業に販売したいとも考えていました。BitKeeperがオープンソースではないことや、BitKeeperが最大クラスのオープンソースプロジェクト(Linuxカーネル)で使われていることは、私を含む多くの人にとって一種の障害となっていました。

トーバルズ氏によれば、BitKeeperのオープンソース代替を待っていましたが、実際に現れたのはアンドリュー・トリジェル氏によるBitKeeperのリバースエンジニアリングプロジェクトでした。これがライセンス問題を引き起こし、最終的にBitKeeperが使用できなくなる事態に発展しました。

私はBitKeeperのオープンソースな代替品が登場することを期待していたのですが、実際に登場したのはアンドリュー・トリジェル氏によるBitKeeperのリバースエンジニアリングプロジェクトでした。しかし、BitKeeperのライセンスではリバースエンジニアリングが禁止されており、大きな問題を引き起こすことになりました。私は非公開でマクボイ氏やトリジェル氏とやり取りして解決策を見つけようとしましたが、両氏はまったく正反対の立場を取っており、解決には至りませんでした。

このため、私はGitのコードを書き始める前に「BitKeeperとは異なる方法でBitKeeperよりも優れたことを実行する方法」について4カ月間考えました。マクボイ氏に「君は、すべきでないことをやらかした」と言われるような状況にはなりたくなかったのです。

Gitの開発環境:ユーザー空間での開発の容易さ

トーバルズ氏はLinuxカーネルの開発とGitの開発を比較して、ユーザー空間でのプログラミングがはるかに容易だったと述べています:

Gitを開発していて知ったのは、ユーザー空間でプログラミングを行うことが(カーネルの開発に比べて)はるかに簡単だということです。ユーザー空間でのプログラミングでは、気にするべき事項がはるかに少ないです。メモリの割り当てなどについて心配する必要はありませんでした。

リーナス・トーバルズ氏が多用するGitコマンド

トーバルズ氏は自身がGitを使用する際のツールや習慣についても言及しています。GUIではなくコマンドラインを好み、「gitk」以外のラッパーツールは使用していないとのことです。また、自身が最もよく使用するGitコマンドについても明かしています:

私が使ったことがあるGitラッパーは「gitk」のみです。そして、gitkはかなり早い段階でGitに統合されました。私は今でもコマンドでGitを使っており、エディター統合機能などは使っていません。私が使っているエディター(編集部注:トーバルズ氏が使っているエディターは「MicroEMACS」である)はGitどころか何も統合できないほど低機能なので、そういったことは一切行いません。

ときどき、Gitの使用履歴を参照してどんなコマンドを使っているのか確かめています。私は5つのコマンドを多用しています。そのうち3つは「git merge」「git blame」「git log」です。

また、残りの2つのコマンドは「git commit」と「git pull」だと述べています。

次のプロジェクト?

Linuxが約34年前、Gitが20年前に登場したことを考えると、「次の大きなプロジェクトは何か」という質問に対して、トーバルズ氏は興味深い回答をしています:

私が作らなければならなかったすべてのプロジェクトは、「他の人が作った良いもの」が見つからなかったから作る必要に迫られたのです。私は、他の人に問題を解決してもらうことの方が好きです。私がプロジェクトを考えださなければならないということは、世界の失敗と言えます。そして、この20年間、世界は失敗していません。

Linuxを作り始めたのはOSが必要だったものの満足できるものがなかったからです。Gitも同じ理由で作り始めました。また、ダイビングログソフトウェア「Subsurface」も作りました。Subsurfaceはあまりにも専門的すぎたため、大きく普及することはありませんでした。それらのプロジェクトによって、いくつかの問題は解決しました。私のコンピューターの用途は非常に限られているため、すべての問題が解決したと思っています。

MicroEMACSへの忠誠

トーバルズ氏が長年にわたって同じエディター(MicroEMACS)を使い続けていることも興味深いエピソードとして語られています:

私が特定の方法でしか物事に取り組めないというのも理由の1つです。私は大学時代から同じエディター(MicroEMACS)を使い続けています。指が覚えてしまって、もう変えられないのです。エディターがもうダメなのは分かっています。(MicroEMACSは)誰も使っていない死んだプロジェクトなので、自分で維持しています。

私は**(MicroEMACSの)ソースツリーを所持していて、新しいマシンを導入するたび自分専用にコンパイルしています。ソースコードの色分け機能などを備えた新しいエディターを何度も試しました**が、その度に「私の手は、このエディターには古すぎる」と感じます。だから、私に「これをやらねばならない」と思わせるようなプロジェクトが出てこないことを願っています。

まとめ:20年の旅路

Gitの20周年を記念したこのインタビューでは、リーナス・トーバルズ氏の実用性を重視する開発哲学と、必要に迫られて行動するというアプローチが浮き彫りになっています。彼自身が当初予想していなかったGitの成功は、シンプルで効率的なツールを求める開発者コミュニティの声に応えたことの証左と言えるでしょう。

20年間で、Gitはソフトウェア開発の風景を根本的に変え、オープンソースプロジェクトの協働作業をより容易にしました。トーバルズ氏の「自分の問題を解決するためのツール」として始まったプロジェクトは、今や世界中の開発者コミュニティの基盤として機能しています。


参考資料

Git turns 20: A Q&A with Linus Torvalds - The GitHub Blog
https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/

Git誕生10周年を記念した開発者のリーナス・トーバルズ氏のインタビュー - GIGAZINE
https://gigazine.net/news/20150407-10-years-git-linus-torvalds

バージョン管理ツール「Git」は一体どういうものなのか? - GIGAZINE
https://gigazine.net/news/20180904-git-version-control-system

混乱を引き起こしがちなGitの用語まとめ - GIGAZINE
https://gigazine.net/news/20231111-confusing-git-terminology

On this page