• トップ
  • ブログ一覧
  • 【初心者向け】GitHubとは?特徴から発展の歴史を解説
  • 【初心者向け】GitHubとは?特徴から発展の歴史を解説

    広告メディア事業部広告メディア事業部
    2020.03.17

    エンジニアになろう!

    ソーシャルコーディングとGitHub

    ミツオカミツオカ
    ソーシャルコーディング」という言葉が話題ですね。これってどういうものなのですか?
    にゃんこ師匠にゃんこ師匠
    これはな、Webなどを利用して、自分の書いたコードを公開し、共有しつつコーディングしていく事を意味するのじゃ
    ミツオカミツオカ
    なるほど!そういう意味だったのですねー
    にゃんこ師匠にゃんこ師匠
    そして、この「ソーシャルコーディング」という言葉の流行と「GitHub」の発展は、密接に結びついておるのじゃ
    ミツオカミツオカ
    あ!たしかに内容は「GitHub」でやっている事ですね!
    にゃんこ師匠にゃんこ師匠
    では、今回は改めて「GitHub」をふりかえってみるかの~!

    GitとGitHubの違い

    まずは、「Git」と「GitHub」の違いから確認していきましょう。

    大まかな見取り図を描くと、下記のようになります。

    1. 「Git」は、バージョン管理システムの名前です
    2. 「GitHub」は、Gitを利用した、コードのホスティングサイトの名前です

    Gitとは

    Git とは、バージョン管理システムの一種です。

    バージョン管理システムは、ソフトウェアの開発などで使われる技術で、開発中のシステムのソースコードの管理をより容易にするものです。

    誰が?」「どの変更を?」「いつ行ったか?」と「その内容」を記録しておくことで、容易にソースコードに手を加える事ができます。

    2種類のバージョン管理システム

    そのようなバージョン管理システムには、「集中型」と「分散型」の2種類があります。

    以前は、Subversion など集中型のソースコード管理が主流でした。

    ですが、Git の登場後、分散型のバージョン管理システムが主流となってきています。

    そんな Git ですが、もともとは、「Linuxカーネル」のソースコード管理のために、リーナス・トーバルズによって開発されました。

    集中型

    メインのソースコードの置き場(レポジトリと言います)で集中的にソースコードを管理します。

    分散型

    集中的な管理場所を設けず、ソースコードの管理は各々の開発者のもとで、分散的に行われます。

    Gitの開発経緯と特徴

    Linuxカーネルの開発には、Git 導入以前、他のバージョン管理システムが使用されていました。

    ですが、ライセンスなどの関係で、これを使うことができなくなったため、Git が開発されたという経緯があります。

    そんな経緯から「消極的に必要最小限の機能をもって開発された」と思われそうですが、そうではありません。

    Linuxカーネルという、大規模なソフトウェアの開発で用いられることを想定している為か、信頼性やパフォーマンスが高いのが特徴です。

    にゃんこ師匠にゃんこ師匠
    こんな風にGitの特徴を活かして、様々なソフトウェア開発の場面で、バージョン管理システムとして用いられているのじゃ
    ミツオカミツオカ
    リーナス・トーバルズさんについては、こちらの記事も見ていただけると!

    GitHubとはどのようなサイトか

    「GitHub」とは、Gitをバージョン管理システムとして使用しつつ、リポジトリ(ソースコードの置き場)をWeb上に提供しているサービスです。

    GitHub のアカウントを開設すると、GitHub 上に複数のリポジトリを開設することができます。

    これを使い、リモートからソースコードの管理を行えます。

    GitHubと様々なソフトウェア

    また、GitHubの特徴は、大型で有名なものも含め、様々なソフトウェア開発のプロジェクトでも用いられている事です。

    エディタの、「Visual Studio Code(ビジュアルスタジオコード)」や、「PowerShell Core(パワーシェルコア)」といった、GitHub の親会社である Microsoft のオープンソースソフトのコードが、ホスティングされています。

    さらに、「Brackets(ブラケッツ)」や「NeoVim(ネオヴィム)」といったテキストエディタをはじめとした、多数のオープンソースソフトのコードもホスティングされています。

    GitHubの魅力

    GitHub の最大の魅力のひとつは、このような著名なソフトウェアのコードを手軽にチェックできることにあります。

    Git の機能を使えば、リポジトリを簡単にクローンすることができます。

    必要に応じて、クローンしたリポジトリのコードをチェックしたり、あるいは修正を加えることなどもできます。

    さらに、GitHub の大きな魅力と言えるのは、自分のソフトウェアのコードを公開し、開発をしていくことができるということです。

    GitHub は、開かれた場所であるため、見ず知らずの人にまで自らのソフトウェアのコードとの出会いの機会を提供してくれます。

    GitHubとAtom

    また、GitHub は Atom(アトム)というエディタの開発者が開発しました。

    Atom は、一般的な多機能型のエディタであるほか、Git や GitHub と連携した利用が容易にできることが強みです。

    具体的には、本体組み込みプラグインの機能を利用することにより、GitHubリポジトリへのソースコードの「push」や「pull」などを、コマンド入力なしで利用することができます。

    にゃんこ師匠にゃんこ師匠
    こういった GitHub の特徴が、現在の GitHub の隆盛を導いている、と言えるかもしれんな
    ミツオカミツオカ
    エディタについては、こちらの記事をみてね!

    エンジニアにとってのGitHubの意義

    にゃんこ師匠にゃんこ師匠
    GitHub や Atom を業務で使いこなすのはもちろん、GitHub で公開されているソフトウェアのコードを参照したり、開発に参加することはとても意義のあることなのじゃ!
    ミツオカミツオカ
    著名なソフトウェアのコードは、決して限られた人だけがアクセスできるモノではありませんもんね!
    にゃんこ師匠にゃんこ師匠
    GitHub を経由すれば、様々な「レベル」や「属性」のエンジニアが、簡単に参考にしたりできるモノなのじゃ
    ミツオカミツオカ
    今後も、様々なソフトウェアのコードをホスティングしたりと、GitHub は発展していくでしょうね!

    こちらの記事もオススメ!

    featureImg2020.07.27IT・コンピューターの歴史特集IT・コンピューターの歴史をまとめていきたいと思います!弊社ブログにある記事のみで構成しているため、まだ「未完成状態」...
    featureImg2020.07.27IT偉人の誕生日特集現在のITがあるのは、「IT偉人」のおかげ!そこで今回は、IT偉人の誕生日をまとめていくことで、時代の流れを追えるよう...

    広告メディア事業部

    広告メディア事業部

    おすすめ記事