読者です 読者をやめる 読者になる 読者になる
【スポンサーリンク】

Git と GitHub の「違い」 と 「概要」をイラストで理解しよう。

GitとGitHub

 

どうも、僕です。

 

 

 

 

 

 

 

 

「 Twitterのプロフに GitHub のURL貼ってるのカッコいいなぁ 」

 

 

 

 

 

 

 

そんな軽い気持ちから登録した GitHub。

 

前回の記事では登録手順のみを紹介していました。

 

 

 

その翌日、C言語の実習中に講師の方に

 

 

「GitHub登録したんですよ!」 と言うと、

 

「なんだね、その ぎっとはぶ ってのは」

 

「(うーん、説明するとなると難しいな……)」

 

 

 

なんてことになり、言葉に詰まりました。

 

ですので、今回は自分が理解もしてないのに自慢げに他人に言うな!を心の片隅に置き、イチから確認していこうと思います。

 

 

 

私のような「なんぞや勢」の手助けになればと思います!

 

 

 

==================================

!!!注意!!!「追記」へ(私の説明がおかしかったようです……)

 「 Git 」とは

プログラムソースなどの変更履歴を管理する分散型バーション管理システムのこと、みたいですね。

 

 

 

 

ここからはイラストで解説していきます。

※あくまで自分がサイトを参考にした事なので、捉え方が違ったらご指摘お願い致します。

f:id:yuutarou22:20161127103640j:plain

f:id:yuutarou22:20161127103647j:plain

f:id:yuutarou22:20161127103650j:plain

f:id:yuutarou22:20161127103654j:plainf:id:yuutarou22:20161127103636j:plain

 

 

そんな時に活躍するのが「 Git 」です。Git は、、、

プログラムソースなどの変更履歴を管理する分散型バーション管理システムのことでしたね。

f:id:yuutarou22:20161127104857j:plain

ローカル環境(個人のパソコン)で開発したものをリモートリポジトリに集めて管理します。

f:id:yuutarou22:20161127104901j:plain

 

リポジトリとは「プログラムなどが体系だてて保管されている場所。アプリケーションやシステムの設定情報がまとめて記録されているフォルダのこと」です。

リモートリポジトリは「ネットワーク上のどこかに置いている、プロジェクトのこと」です。

 

f:id:yuutarou22:20161127104853j:plain

 

私はまだ現場で働いた事がないので分かりませんが、こんな感じかと思います。

調べた所、これまでのバージョン管理システムでは、サーバーにある1つのリポジトリを共有していました。そのため、利用者が増えると変更内容が衝突したり、整合性を維持することが困難だったそうです。

 

それに対して「 Git 」では、

ローカル環境(自分のパソコン)にもプログラムの変更履歴を保存(コミット)でき、リモートリポジトリに接続する必要がないんですね。

 

つまり、

f:id:yuutarou22:20161127111735j:plain

f:id:yuutarou22:20161127111737j:plain

ということなんですね!!!

こりゃあ~便利。

コレでなんとなくわかった。

 

 

 

 

 

 

 

 

 

 

 

 

 

それで「GitHub」は?

もう単純です。

ネット上にGitのリモートリポジトリがあるような感じです。

 

通常、 Git は企業内のプロジェクトごとにおいて利用されるため非公開にされます。ネット上に公開したら大変なことになりますよ。特許権も著作権もクソもない。

それに対して GitHub は、ネット上で公開する形になります(設定によって非公開も可)。

 

 

 

 

 

 

簡単にまとめると、、、

GitとGitHubまとめ

みたいな感じですかね。

 

 

 

 

 

 

 

勘違いしてんぞヴォゲェ!!!!

な、ところがあればマジでご指摘お願い致します!!!!すぐに書き直します!!!!

 

 

 

 

 

 

 

 

 

 

 

 

終わりに

いかがだったでしょうか。

今回は頑張ってイラスト描いてまとめてみました(笑)

何度も申していますが、もし勘違いしてるz(略) があればコメントで教えてください!

 

次回は「コマンドが分からないけど、とりあえずGitHubを使いたい!」という願いを叶えるべく、奮闘いたします。頑張ります。

というかこのGitHubシリーズ、毎回大きな記事になるなぁ。。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【追記】

はてブコメントにて、kazutomoさんが

デザイナさんかな?

内容が 生 Git と GitHub の違いではなく、 SCMとは?SVNとGitの違いになっとる気がする。生Git を IssueとかPRとかWebHookを使ってプラットフォーム化したのものが GitHub なんじゃないかな!

 とのご指摘をいただきました!!!ありがとうございます。

 

ちなみにデザイナしゃんではありません。普通のプログラマ志望の専門学生です。よろしくどうぞ。

 

 

めっちゃ専門用語並べられていたので、ググりました。

SCM(Supply Chain Management:サプライチェーン・マネジメント)

供給業者から最終消費者までの業界の流れを統合的に見直し、プロセス全体の効率化と最適化を実現するための経営管理手法。

SVN(Apache Subversion:アパッチ・サブバージョン)

プログラムのソースコードなどを管理する集中型バージョン管理システムの一つ。

Webhook(Webコールバック、HTTPプッシュAPI)はあるアプリケーションから別のアプリケーションに対してリアルタイムな情報提供を実現するための仕組み。

高い頻度でポーリングをする方法とは異なり、Webhookは送信側・受信側ともに効率の良い方法。

ただし、唯一欠点があるとすれば初期設定が難しいこと。

Webhookは時々「リバースAPI」と呼ばれる場合があるように、Webhookプロバイダ(送信側)から提供されるAPI仕様に従って、受信側のAPIを実装する必要がある。

Webhookは指定されたアプリケーションに対してHTTPリクエスト(通常はPOST)を行い、受信側はその内容をパース(リクエストの内容を解釈)して利用することが出来る。

 WebHookに関しては、ちょっとわかりづらいですけど、つまり、

 一般的なAPIはこちらからAPIをコールするけど、それに対してWebHooksはサーバ側からこちらが指定したURLをコールしてもらう仕組みってことですかね。

 

 

SCMに関してもおっしゃるとおりでした。と言いますか、SCMってこういう流れだったんですね(笑)FEの勉強でしてるのに……

 

 

ご指摘ありがとうございました!

【スポンサーリンク】