Fin_IT

FinanceとITに関する記事をメインに。

3分で分かるgitとGitHubについて

Web系エンジニアであれば使うことが多いであろう

「git」と「GitHub」について解説したいと思います

 

「git」と「GitHub」って同じサービス??

と勘違いしている方もいらっしゃるのではないでしょうか?

 

本記事ではそのような方を対象に

①gitとは

gitHubとは

上記2点をざっくりお伝えすることにより2つは全然違うサービスなんだと認識してもらうために執筆しました。

それではまずgitについてです

 

 ①gitとは

gitはプログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムのことを指します

簡単に言えば、、、

gitは保存のプロです

「保存なんか普通にいまでもできてるよ?」と感じられる方もいるでしょう

gitは単に保存するだけじゃなく、バージョンを管理しつつ保存ができるのです

バージョンを管理するというのはGitを使って保存されたデータは時系列で保存されているという意味です

 

たとえばプログラムをいじっていて、途中で重大な間違いをしてしまったとしましょう。

gitを利用せず間違いをした場合

f:id:stock_study:20200313010015p:plain

普通であれば元には戻す為には、ミスした時点までに書いてきたコードをすべて削除する必要があります。

ただこれはどこのファイルにどんなことを書いたか等を全て記憶してないと復元するのは無理ですし、かなり作業が進んでしまっていては途方もないことになりますよね

 

そんな時にgitの出番です

gitは先ほど記述した通り時系列でデータを保存していますので

 

f:id:stock_study:20200313111252p:plain

 

仮にファイルをいじってみて失敗したとしても、失敗する前にGitで保存していると

いつでも元の状態に戻すことができます

 

すなわちgitを用いてデータを保存する利点の一つは

失敗してもいつでもどの地点にでも戻すことができる

といえます

 

2.複数人で共同開発しやすい

こちらのメリットを述べる前にgitの大事な概念の一つに

ローカルリポジトリとリモートリポジトリというものがあります

リポジトリとは先ほど述べたバージョン管理の内容を保存する場所みたいなものです

ローカルリポジトリはご自身のパソコン内にあります

リモートリポジトリ他のサーバにあるリポジトリのことで、インターネットでアクセスすることができます

それでは本題のgitを用いた複数人で共同開発しやすい仕組みについてお話しします

 

f:id:stock_study:20200314103540p:plain

基本的には各々ローカルリポジトリ内で作業することになります

そしてローカルリポジトリ内で作業が完成した場合、リモートリポジトリに変更内容を記録します

ちなみにこの作業のことをgitではpushと呼んだりします

f:id:stock_study:20200314104049p:plain

 

リモートリポジトリはネットを通じて他の作業者も見ることができますから

誰がいつ、どこの部分のデータに修正、あるいはデータを加えたのか

といったことが一目で分かります

また、メリット①で述べた通りリポジトリロカール、リモート関わらず)はすべての変更内容を時系列で記録していますから修正前のものもいつでも再現することはできます

f:id:stock_study:20200314104341p:plain

 

また先ほどのpushの逆の作業として、pullをすることでリモートリポジトリのデータを自分のロカールリポジトリに入れることもできます

 

このようにgitを使うことによって誰がいつ何をしたのかといった情報や、簡単にデータを共有できたりすることから、複数人によって開発を行う際に重宝されています

以上がgitについての説明です

 

GitHubとは

それではGitHubとはなんでしょうか?

それは、リモートリポジトリのことです。

先ほどの図を使うとこういうことです

f:id:stock_study:20200314110036p:plain

 

 リモートリポジトリを提供してくれるサービスはGitHub以外にも存在しているので興味のある方は下記記事にて詳しく書かれていますのでご参考ください

forthewin.co.jp

 

以上がGitHubの説明です

 

この記事ではgitとGitHubについての説明を行いました

まとめますと、

gitは変更内容の保存に長けたサービス

GitHubはgitのリモートリポジトリを提供してくれるサービス

ということです

 

ご参考になれば幸いです