ギットハブ!?ソースコード共有サービスGithubとは?

今回はGitHubというサービスが一体なんなのか?について紹介していきたいと思います。

GitHubとは?

https://github.co.jp/

GitHubは、ソースコードをインターネット上で共有できるサービスです。

ソフトウェアの開発を行う開発者にとってはもはや常識とも呼べるサービスです。

なんで必要なの?

複数のエンジニアでプロジェクトを開発する時、みんながそれぞれ自分勝手に開発を進めていくと、どうなると思いますか?

  • 複数の人が同じ機能を作ってしまう
  • バグが共有されずに放置される
  • 参照しているバージョンが違う
  • どれが最新版が分からなくなる

と言うように、このやり方ではチーム開発の際に深刻な問題が多々発生してしまいます。

GitHubの誕生

このような深刻な問題が発生し、チーム開発というものがとても大変な時、ある人がこう切り出しました。

「みんな落ち着け!みんなで共有出来る完成版を1個作ろうよ!」

それぞれのエンジニアがこの完成版に変更を加えていき、完成版以外は全て偽物ですよという風にしてしまえば、誰が作ったものが正しいのかという問題を解決することができます。

こうして誕生したのが、Githubのようなソースコード共有サービスです。

幸いこの開発者たちは、Gitと呼ばれるバージョン管理システムをみんな使っていたので、Gitで開発するときの方法でみんなで一個のサービスを作ろう!ということに決まりました。

Gitとは?

Gitはバージョン管理システムの一種です。バージョン管理システムは、開発するときに「どこまで開発したか?」という記録をセーブデータとして残していくためのシステムです。

Gitはセーブデータを残して誰が何をどうやって開発したか?という記録が正確に残ります。これはGitHubのようなサービスにする上でとても使いやすい仕組みなのです。

GitHubの使い方

Githubはチームで開発する時にみんなが混乱しないようにするためのソースコード共有サービスであると理解していただけていれば幸いなのですが、

これって私たちになんの関係があるサービスなの??

と思う方もいるかもしれません。基本的にGitHubは、チーム開発におけるソースコード共有が目的なのですが、開発者にとっては、それ以上にオープンソースプロジェクトの公開プラットフォームであるという役割があります。

オープンソースとは?

オープンソースとは、ソースコードをオープンに公開しているプロジェクトのことを言います。

要は、誰でも見れて、誰でも使えて、誰でも開発に参加できるプロジェクトのことです。

オープンソースであることによって、開発したものが無料で他の人に使われてしまうというデメリットはありますが、それ以上に世界中のエンジニアが無数に開発に参加できるというメリットがあります。

オープンソースであるが故に優秀なエンジニアたちは、そのシステムで何か足りないことや問題を見つけた時、開発者に文句を言う前に、自分でその機能を作って変更するという荒業が可能になります。

このようなことの積み重ねでオープンソースのプロジェクトは運営されていきます。

もちろんGitHub上に公開するプロジェクトはオープンソースである必要性はなく、身内だけで開発を行いたい場合は、privateなプロジェクトとして開発を行うことができます。

GitHubの使い道

GitHubには主に以下の3つの使い道があります。

Clone クローン

これは、github上にあるプロジェクトをそっくりそのまま自分のPCにコピーする際に使います。

開発するプロジェクトに参加する場合やシンプルにそのシステムを使いたい時にこの機能を使います。

Issue イシュー

これは、Github上にあるプロジェクトの問題点を指摘して、治してくださいというリクエストをする際に使います。

Pull Request プルリク

これは、Github上にあるプロジェクトの問題点を直したエンジニアが、自分が変更を加えた部分を本番用のプロジェクトに付け加えてくれというリクエストをする際に使います。

まとめ

GitHubとは

ソースコードをみんなで共有するためのサービス。

GitHubが一体何者なのかのイメージがつくようになっていただければ幸いです。

 
お仕事決まれば全額キャッシュバック!転職特化型Ruby実践研修【ポテパンキャンプ】

集中的な8週間のマンツーマン訓練で、最先端のAIエンジニアを目指す

受講者満足度も90%以上!【WebCamp】

【WEBCAMP ONLINE】

未経験のITエンジニア転職なら【TECH::EXPERT】

ABOUTこの記事をかいた人

「お金をかけないサバイバル術」に関する記事を書きます。証券アナリスト資格(CCMA)を持っています。Ethereum信者です。温泉と餃子とv系バンドが好きです。プログラミングが得意です。趣味はメルカリです。好きな言葉は「最小構成」