GitHub とは

GitHub とは Git のホスティングサービスの 1 つです。 GitHub を利用するとクラウド上に Git のリポジトリを作成して利用することができます。 また GitHub は Git の機能のみだけではなく、ソフトウェアを開発するうえであると便利な機能やサービスを多数提供しています。 GitHub 以外の Git のホスティングサービスには BitbucketGitLab などがあります。

GitHub を利用するメリット

  • ソースコードをプロジェクトメンバー間で共有するためのサーバーの設置が不要
  • Git の機能を便利に利用するためのサービスが充実している
  • ソースコードを公開する前提の場合には無料で利用できる機能が多い

サーバーの設置が不要

複数人で 1 つのプロジェクトを共有する場合には、ローカルの開発用 PC に Git をインストールする以外にも、共有のための Git のサーバーを立てる必要があります。 各自の開発用 PC をサーバーとして利用することもできますが、通常複数人で開発する様な環境ではそういったことはあまりしないです。 ローカルのネットワーク以外からもアクセスを想定する場合には、サーバーのメンテナンスやセキュリティーの問題もあるため、自前で用意するよりサービスを利用したほうが良いです。

追加のサービス

Git 自体はコマンドラインのソフトウェアですが、GitHub はそれ以外に様々な機能を Web アプリケーションとして提供しています。 ソースコードを Web ブラウザーから閲覧したり検索したりする機能や、課題管理やソースコードレビューのための機能などが提供されています。

公開する場合は無料で利用できることも

GitHub は元々、ソースコードを公開しみんなで改善していく、オープンソースソフトウェア (OSS) 開発の文化の中で成長してきたため OSS のホスティングに対して親切なところがあります。 ビジネス上秘匿しなければならない場合やプライバシーや恥ずかしい等の問題で公開できない場合はこの仕様は利用できませんが、個人の学習段階の様な場合であればソースコードを公開すれば無料になるのは魅力でもあります。

GitHub を利用する際の問題点

  • 追加のサービスによるベンダーロックイン

ベンダーロックイン

Git の機能のみを利用している場合、他の Git のホスティングサービスに移行することは容易だと思います。 しかし、GitHub にしかない機能を多く利用している場合には、GitHub から他の Git のホスティングサービスに移行するにはそれなりの手間がかかります。 この様に、ある企業 (ベンダー) の製品から他の企業の製品に移行する際のコストが高く、移行しづらくなる状況をベンダーロックインと呼びます。 通常は、サービスの質や価格などに変化があった場合にすぐに別のサービスを選定するためにこの点を考慮します。 もし、当面は GitHub を利用するままで問題ない場合にはこの点はあまり考慮しないです。

Git と GitHub

GitHub は Git を利用するためのサービスですが、Issue や Pull request の様に Git 自身には無い機能・サービスが多く追加されています。 各機能が Git の機能なのか GitHub 固有の機能なのかを意識して利用しないと、トラブルが発生した際や他のホスティングサービスに移行する際に戸惑うことがあります。

参考資料