GitHub は、ギークたちが絶賛しているウェブサイトやサービスですが、多くの人がその機能を理解していません。GitHubが何のためにあるのか知りたくありませんか?続きを読んでみてください。
GitHubの「Git」について
GitHubを理解するためには、まずGitを理解する必要があります。Gitは、Linuxを作ったリーナス・トーバルズ(Linus Torvalds)によって始められたオープンソースのバージョン管理システムです。Gitは他のバージョン管理システム、例えばSubversion、CVS、Mercurialなどと似ています。
では、Gitはバージョン管理システムですが、それはどういう意味でしょうか?開発者が何か(例えばアプリなど)を作るとき、コードに絶え間なく変更を加え、最初の公式リリース(ベータ版ではない)までの新しいバージョンをリリースします。
バージョン管理システムは、これらのリビジョンを一貫して管理し、変更内容を中央のリポジトリに保存します。これにより、開発者はソフトウェアの新しいバージョンをダウンロードして変更を加え、最新のリビジョンをアップロードすることができるので、簡単に共同作業を行うことができます。すべての開発者は、これらの新しい変更点を見て、ダウンロードして、貢献することができます。
同様に、プロジェクトの開発とは何の関係もない人でも、ファイルをダウンロードして利用することができます。ほとんどの Linux ユーザーはこのプロセスに慣れているはずです。必要なファイルをダウンロードするために Git や Subversion などの類似の方法を使うことはよくあることですが、特にソースコードからプログラムをコンパイルする準備をしているときには (Linux オタクにとってはかなり一般的な習慣です)
Git は他のシステムに比べて複数の利点があるため、ほとんどの開発者に好まれているバージョン管理システムです。Git はファイルの変更をより効率的に保存し、ファイルの整合性をより確実にします。詳細を知りたい場合は、Git Basics のページで Git の仕組みを徹底的に説明しています。
GitHubのハブとは
Git はバージョン管理システムであり、似ていますが、多くの選択肢がある中で、それよりも優れたものであることを確認しました。では、GitHubは何が特別なのでしょうか?Gitはコマンドラインツールですが、Gitに関わるすべてのものの中心はハブであるGitHub.comであり、開発者がプロジェクトを保存したり、同じような考えを持つ人々とネットワークを作ったりする場所です。
ここでは、開発者が自分たちのプロジェクトを保存し、同じような考えを持った人たちとネットワークを作る場所です。
Repository

リポジトリ (通常は「レポ」と略されます) とは、特定のプロジェクトのすべてのファイルが保存されている場所のことです。各プロジェクトにはそれぞれ独自のレポがあり、一意の URL でアクセスすることができます。
Forking(フォーキング)について
“Forking “とは、すでに存在する別のプロジェクトをベースにして新しいプロジェクトを作成することです。これは、プログラムや他のプロジェクトのさらなる開発を大きく促進する素晴らしい機能です。GitHub 上で貢献したいプロジェクトを見つけたら、そのレポをフォークして好きなように変更し、修正したプロジェクトを新しいレポとしてリリースすることができます。新しいプロジェクトを作成するためにフォークした元のリポジトリが更新された場合は、その更新を現在のフォークに簡単に追加することができます。
Pull Requests(プルリクエスト)について
リポジトリをフォークして、プロジェクトに素晴らしいリビジョンを作って、オリジナルの開発者に認めてもらいたい、もしかしたら公式のプロジェクト/リポジトリに含まれているかもしれません。プルリクエストを作成することでそうすることができます。オリジナルのリポジトリの作者はあなたの作品を見て、公式プロジェクトに受け入れるかどうかを決めることができます。プルリクエストを発行するときはいつでも、GitHub はあなたとメインプロジェクトのメンテナがコミュニケーションをとるための完璧な手段を提供してくれます。
Githubのソーシャルネットワーク
GitHubのソーシャルネットワーキングの側面は、おそらくGitHubの最も強力な機能であり、他のどの機能よりもプロジェクトを成長させることができます。GitHub の各ユーザーは、履歴書のような役割を果たすプロフィールを持ち、過去の仕事や他のプロジェクトへの貢献をプルリクエストで表示します。
プロジェクトのリビジョンは公開で議論できるので、多くの専門家が知識を提供し、協力してプロジェクトを前進させることができます。GitHub が登場する以前は、プロジェクトへの貢献に興味のある開発者は、通常、作者と連絡を取る手段を見つけて(たぶんメールで)、信頼できること、自分の貢献が正当であることを納得させなければなりませんでした。

Changelogs(チェンジログ)について
複数の人がプロジェクトで共同作業をしていると、誰がいつ何を変更したのか、そのファイルはどこに保存されているのかなど、リビジョンを追跡するのが大変です。GitHub は、リポジトリにプッシュされたすべての変更を追跡することで、この問題を解決します。
GitHub は開発者だけのものではない
GitHubがプログラマーにとって理想的だという話ばかりしていると、GitHubが便利なのは自分たちだけだと思ってしまうかもしれません。あまり一般的ではありませんが、実際にはどんな種類のファイルでもGitHubを使うことができます。例えば、ワード文書に常に変更を加えているチームがあれば、バージョン管理システムとしてGitHubを使うことができます。この方法は一般的ではありませんが、他にももっと良い方法があるので、覚えておいた方がいいでしょう。
さて、GitHub がどんなものかわかったところで、始める準備はできましたか?GitHub.com にアクセスして、サインアップしたら必ずヘルプページをチェックしてください。
