Git ●Gitはファイルを動的なものに変貌させる Web開発について実際に取り組む前に、Gitについて色々話をしておこうと思う。GitはLinuxが誕生したころに生まれた。Gitの成長はLinuxの成長を凌駕し、多くのことを成し遂げた。バージョン履歴が残っているので、どんな歴史を辿ってきたか調べることができる。単なるファイルのレベルではなく、ファイル全体のシステムとしての履歴が見られる。
Gitは枝分かれしながら色んなバージョンが開発されてきた。僕が開発に携わっていたら、安定版や商用版、テスト版なんてものを手に入れられただろうね。実際、色んなバージョンを手に入れられる。それは再統合されたんだ。色んな開発者たちが、色んなバージョンのものを作り上げたからね。多様なバージョンから、選んでみよう。 もし、始めてGitを使うのであれば、君たちのコンピュータにあるファイルは、ファイルとして考えてきただろう。でも、Gitを使えば、君たちは単なるファイルシステムではなく、急に以前のバージョンに変更したり、テスト版など違うバージョンに切り替えたりということができるようになる。つまりファイルシステム全体が、静的なものから動的なものに変質するのだ。 もし、分散したバージョン管理に触れるのが初めてであれば、多くの新たな機能を目にすることになるだろう。その威力に慣れるのには少し時間がかかるかもしれない。でも、Gitというのはそういう強力なツールなのだ。
●GitHub GitHubは、君たちが自分のサーバー上に構築したソフトウェア用のGitのリポジトリをシェアするためのプラットフォームとしてよく使用される。
●Gitolite Gitoliteは非常に軽量なツールで、1つではなく複数のリポジトリを使用したい時や、リポジトリを作成するサーバをシェアしたい時に、それを可能にしてくれる。僕はこのツールが好きだ。GitWebもまた軽快なツールだ。これも、ウェブの世界インターフェイスを複数のGitリポジトリに構築することを可能にする。どちらのツールも軽快で、僕はよく使う。
●GitLab GitLabについても説明しよう。2016年のFabAcademy のためにFiore BasileがGitLabプラットフォームを構築するために尽力してくれた。コードの評価や、実装などを行ってくれたんだ。これで、君たちはひとつのアイデンティティを得ることになる。つまり、暗号の鍵を共有することによって、君たちは複数のリポジトリにアクセスすることが可能になるんだ。このリポジトリをバージョン管理のためにシェアするだけでなく、Webページとして公開することもできる。これはもっと一般的なものだ。GitLabは単にGitやリポジトリという括りではなく、何でも管理できるプラットフォームなんだ。その威力について話をしておこう。
拡張され、僕たちはひとつのアイデンティティを得たんだ。FabLabにある君たちのアカウントを通してね。FabLabネットワークを通して僕たちはひとつのアイデンティティを共有しているんだ。そして、僕たちはもっと色んなツールを開発していくことになるだろう。これらは君たちがリポジトリに常に更新していく、色々な面白いツールに基づいて開発されていく。例えばWebブックをこのリポジトリに作り上げることもできる。そして、君たちが共有したアーカイブは利用され変質し、次の進化を遂げていくのだ。僕たちはサイトジェネレータなのだ。 さあ、君たちのリポジトリに君たちのストーリーを紡ぐ時が来たのだ。僕のリポジトリ以外の場所に新たなHTMLを生成し、PDFを創り出して欲しい。そして、それらはたぶん間違っている。でも、それで良い。まず、試すんだ。 かつてFabAcademy はたったひとつのリポジトリを使っていた。でも、僕たちは大きく成長した。だから今年からは、地域ごとのリポジトリを用意した。ほんとに大きく成長したんだ。将来的にはラボごとにリポジトリを用意したい。そして、僕たちはそれらのリポジトリを管理するための新しいプラットフォームを手に入れたのだ。 このプラットフォームは、この講座だけに限られたものではない。もっと一般に開かれたものだ。君たちはこのプラットフォームの使い方を学び、FabLabに関する色んなプロジェクトマネジメントのために利用することができる。
(つづく)
講義の目次は【和訳版】FabAcademy 2016からご覧ください。
※この記事はFabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。