GitはLinuxの生みの親であるトーバルズ氏によって開発されたバージョン管理ソフトウェアで、Gitの最初のコミットは現地時間の2005年4月7日です。当時、Linuxカーネルの開発プロジェクトではバージョン管理ソフトウェアとして「BitKeeper」を用いていましたが、ライセンス上の問題でBitKeeperが使用不可能となったことを受けてトーバルズ氏がGitをわずか10日で開発したエピソードは有名です。
当時、BitKeeperはかなりうまく機能していました。BitKeeperは完璧ではありませんでしたが、私が試した他のプロダクトよりはるかに優れていました。しかし、BitKeeperは商用ソフトウェアであったため、Linuxカーネルの開発コミュニティでは全体的に歓迎されていませんでした。(BitKeeperの開発者である)ラリー・マクボイ氏がオープンソースに対して好意的であったため、BitKeeperはオープンソースプロジェクトで使う分には無料でした。一方でマクボイ氏はBitKeeperを大企業に販売したいとも考えていました。BitKeeperがオープンソースではないことや、BitKeeperが最大クラスのオープンソースプロジェクト(Linuxカーネル)で使われていることは、私を含む多くの人にとって一種の障害となっていました。
私はBitKeeperのオープンソースな代替品が登場することを期待していたのですが、実際に登場したのはアンドリュー・トリジェル氏によるBitKeeperのリバースエンジニアリングプロジェクトでした。しかし、BitKeeperのライセンスではリバースエンジニアリングが禁止されており、大きな問題を引き起こすことになりました。私は非公開でマクボイ氏やトリジェル氏とやり取りして解決策を見つけようとしましたが、両氏はまったく正反対の立場を取っており、解決には至りませんでした。
このため、私はGitのコードを書き始める前に「BitKeeperとは異なる方法でBitKeeperよりも優れたことを実行する方法」について4カ月間考えました。マクボイ氏に「君は、すべきでないことをやらかした」と言われるような状況にはなりたくなかったのです。
つまり、Gitを実際に使い始めるまでのコーディング作業は10日くらいでしたが、頭の中であれこれ検討する時間がたくさんあったわけです。

GitHub:
Gitの初期バージョンを開発していた10日間はLinuxカーネルの開発から離れてGitの開発に集中していたということですね。カーネルのことを考えずにGitだけに取り組むのはどんな感じでしたか?
リーナス・トーバルズ:
(Linuxカーネルの開発から離れていたのは)たった2週間だったので大したことはありませんでした。私は過去35年間で数回しか休暇を取っていませんが、カーネルの開発から2週間ほど離れたことは以前にもありました。
Gitを開発していて知ったのは、ユーザー空間でプログラミングを行うことが(カーネルの開発に比べて)はるかに簡単だということです。ユーザー空間でのプログラミングでは、気にするべき事項がはるかに少ないです。メモリの割り当てなどについて心配する必要はありませんでした。
GitHub:
Gitを使う際に、一緒に使うツールはありますか?私は「tig」を使っています。
リーナス・トーバルズ:
私が使ったことがあるGitラッパーは「gitk」のみです。そして、gitkはかなり早い段階でGitに統合されました。私は今でもコマンドでGitを使っており、エディター統合機能などは使っていません。私が使っているエディター(編集部注:トーバルズ氏が使っているエディターは「micro-emacs」である)はGitどころか何も統合できないほど低機能なので、そういったことは一切行いません。

ときどき、Gitの使用履歴を参照してどんなコマンドを使っているのか確かめています。私は5つのコマンドを多用しています。そのうち3つは「git merge」「git blame」「git log」です。
GitHub:
他の2つは?
リーナス・トーバルズ:
「git commit」と「git pull」です。
GitHub:
Linuxは約34年前に登場し、Gitは20年前に登場しました。次の大きな出来事は何になるでしょう。(これまでのスパンを考えると)5年ほど遅れていることになります。
リーナス・トーバルズ:
私が作らなければならなかったすべてのプロジェクトは、「他の人が作った良いもの」が見つからなかったから作る必要に迫られたのです。私は、他の人に問題を解決しもらうことの方が好きです。私がプロジェクトを考えださなければならないということは、世界の失敗と言えます。そして、この20年間、世界は失敗していません。
Linuxを作り始めたのはOSが必要だったものの満足できるものがなかったからです。Gitも同じ理由で作り始めました。また、ダイビングログソフトウェア「Subsurface」も作りました。Subsurfaceはあまりにも専門的すぎたため、大きく普及することはありませんでした。それらのプロジェクトによって、いくつかの問題は解決しました。私のコンピューターの用途は非常に限られているため、すべての問題が解決したと思っています。
私が特定の方法でしか物事に取り組めないというのも理由の1つです。私は大学時代から同じエディター(micro-emacs)を使い続けています。指が覚えてしまって、もう変えられないのです。エディターがもうダメなのは分かっています。(micro-emacsは)誰も使っていない死んだプロジェクトなので、自分で維持しています。
私は(micro-emacs)のソースツリーを所持していて、新しいマシンを導入するたび自分専用にコンパイルしています。ソースコードの色分け機能などを備えた新しいエディターを何度も試しましたが、その度に「私の手は、このエディターには古すぎる」と感じます。だから、私に「これをやらねばならない」と思わせるようなプロジェクトが出てこないことを願っています。
なお、GitHubの元ページにはGitの開発初期から現在にかけての裏話が他にも多数記載されています。