#はじめに#
Gitとは
ソースコードのバージョンを管理するツール
GitHubとは
Gitを利用した、開発者を支援するWebサービス
GitとGitHubですが、関連性は強ものの別物であり、Gitを利用しているからと言ってGitHubを使用しなければならないというわけではありません。
後述しますが、GitのホスティングサービスはGitHub以外にも存在しております。
##Git誕生の歴史と利便性##
そもそもGitはどのようにして誕生したのか。
その経緯から、Gitの利便性を確認していきましょう。
Gitの生みの親はLinuxOSを作ったリーナス・トーバルズ氏です。
氏は、当初Linuxカーネル開発で「BitKeeper」というバージョン管理システムを用いておりました。
ライセンスの問題により「BitKeeper」使用することができなくなったため、代替するサービスを探したもののフリーのバージョン管理システムでは、氏の掲げる高度な要求水準を満たせるものはありませんでした。
そのためトーバルズ氏自ら開発に着手し、そこで誕生したものが「Git」になります。
ではこれまでのバージョン管理ツールと比べてGitは何に優れているのでしょうか。
Gitが優れている点、それは分散型のリポジトリであることにあります。
従来リポジトリは全体で1つでしたが、Gitは「ローカル」と「リモート」の2つを持っています。
この分散型のメリットは、システム開発を複数で行った場合に、開発者それぞれがソースコードを書いていきリポジトリに追加していくことになるため、開発者が増えればその分だけリポジトリに不整合が生じる可能性が高まります。
そういったリポジトリの不整合を防ぐために、各開発者が自身のマシンでローカルリポジトリに変更を記録していき、全体の状況を見てリモートリポジトリに変更を記録していくことで利便性が高まりました。
分散型という今までにない形でバージョン管理を行うことで、従来の管理ツールに対して感じていた懸念は払拭され、現在に至るまで開発に用いられるようになりました。
##GitHubとは##
Gitという言葉がついているので、専用サービスのような印象を受けますが、こういったGitのホスティングサービスとしては他にもあり、GitHubを必ず利用しなければならないというわけではありません。
GitHubは、クラウド上でGitを用いたバージョン管理をすることができ、Gitを更に使いやすくする機能が備わっております。
その中でも**「フォーク」「プルリクエスト」「マージ」**の3つの機能があることで、利便性が向上し、多くのユーザーから支持を得ています。
- フォーク:誰かのリポジトリを取得(コピー)して改変することができる。
- プルリクエスト:自身が行ったソースコードの変更点について他のメンバーにレビュー依頼ができる機能
- マージ:人のコードを自分のコードに導入すること。
「フォーク」してコードの改修を行い、オーナーへ「プルリクエスト」を行う。
「プルリクエスト」を受けたオーナーはそのコードを「マージ」する。
また、GitHubはソーシャルコーディングの場とも呼ばれており、他の人のソースコードを見ることができます。
これによって、開発への参加やフィードバックなどオープンソースでの開発がしやすくなったのもGitHubのメリットになります。
###GitHub以外に使用されている代表的なGitのホスティングサービス###
各種選ばれる違いとしては、ホスティングがWebサービス型とインストール型で違うことや、対応するVCSの違い、無料のプライベートリポジトリ、料金形態と様々です。
##まとめ##
Gitとは分散型にする事で、開発効率をあげる目的を持ったバージョン管理ツールであり、
GitHubはそれをオープンソースとしてチーム開発の利便性向上や、技術者のコミュニティ形成に役立っているサービスである。
##参照記事##
ITmedia エンタープライズ
https://www.itmedia.co.jp/enterprise/articles/0504/20/news075.html
FERROWS
https://job.fellow-s.co.jp/useful_info/feature_detail/Art-0488
Linix.com
https://www.linux.com/