解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

Git と GitHub を一緒に教えるな

Git 初心者に対して GitHub を同時に教えている事例が数えきれませんが、有害です。 Git と GitHub を一緒くたにして教えることをやめるべきです。

GitHub は、 Git 対応のリポジトリホスティングサービスであって、 Git ではありません。

比較して言えば、ウェブホスティングサービスと、Apache や Nginx のようなウェブサーバソフトウェアを混同しませんよね。 ウェブホスティングサービスに put するのに FTPFTP クライアントをつかうところもありますが、ウェブホスティングFTP は別ものですよね。

Git を始めるときにはまず、ローカルでいろいろと操作をして、更新履歴の管理を可能にするソフトウェアなんだということを了解することが先です。

git pushをつかいはじめるときにも、 GitHub である必要は皆無です。 むしろ、既に ssh や scp をつかっているような人に対しては、その既につかっているサーバに git push をしてみて、リモートにリポジトリを複製可能なんだということをやった方がよいと思います。

そこで、同じリポジトリ複数マシンでやりとりすることが可能で、だから複数人で同一プロジェクトの作業共有も可能なんだということが解るわけです。

そもそも他人とやりとりしなくとも既に、 Git は更新履歴を管理するのにとても便利なソフトウェアです。 例えばウェブサイトの管理だとかにも有用ですし、プライベートの日記をつけるのにつかってもいいくらいです。

他方で、 GitHub を Git と抱き合わせで宣伝するのはきわめてアンフェアです。 GitHub は Git公式のものではないし、同種のリポジトリホスティングサービスには BitBucket などもあります。

Git と GitHub を混同しては有害ですし、PullRequest のような GitHub 独特の機能を同時にやっては難解になるばかりです。

率直に言って、 GitHub がなぜこれほどチヤホヤされるのか、私には解りません。 単にユーザ数が多かったり著名プロジェクトが採用していたりするからだと思います。 バグリポートを出すだけでも GitHub に登録しないと不可能ならば、必要もないのに GitHub に登録させられるのですから……

SNS などと同じで、ユーザ数が多くなりデファクトスタンダードを勝ち得たところだけが資金繰りがよくなり生き残るというジャンルなのだと思います。 無料にしないとユーザ数が稼げず、しかしそれではどうやって運営していくのかという課題にぶちあたるわけです。 だから Gitorious みたいに廃業した事例もみられます。

GitHub は有名になり大いに宣伝されていますけれど、内部のシステム自体は時代遅れだと思いますし、ヘルプは意図的に簡素化されていて充実しておらず、「隠し機能」が多いので、不便なことが多いです。 決してフリーソフトウェア的ではない、フリーダムではないという印象をもっています。

Git が創られたのも、 Linux カーネルの製作を続けるにあたって自ら管理し改造可能なシステムが必要になったからです。 その観点でいくと、 GitHub 依存は矛盾しているとさえいえると思われます。

ちなみに、 Git も Linux カーネルと同様に、 GPLv2 ライセンスのフリーソフトウェアです。