3分で分かるgitとGitHubについて
Web系エンジニアであれば使うことが多いであろう
「git」と「GitHub」について解説したいと思います
「git」と「GitHub」って同じサービス??
と勘違いしている方もいらっしゃるのではないでしょうか?
本記事ではそのような方を対象に
①gitとは
②gitHubとは
上記2点をざっくりお伝えすることにより2つは全然違うサービスなんだと認識してもらうために執筆しました。
それではまずgitについてです
①gitとは
gitはプログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムのことを指します
簡単に言えば、、、
gitは保存のプロです
「保存なんか普通にいまでもできてるよ?」と感じられる方もいるでしょう
gitは単に保存するだけじゃなく、バージョンを管理しつつ保存ができるのです
バージョンを管理するというのはGitを使って保存されたデータは時系列で保存されているという意味です
たとえばプログラムをいじっていて、途中で重大な間違いをしてしまったとしましょう。
gitを利用せず間違いをした場合
普通であれば元には戻す為には、ミスした時点までに書いてきたコードをすべて削除する必要があります。
ただこれはどこのファイルにどんなことを書いたか等を全て記憶してないと復元するのは無理ですし、かなり作業が進んでしまっていては途方もないことになりますよね
そんな時にgitの出番です
gitは先ほど記述した通り時系列でデータを保存していますので
仮にファイルをいじってみて失敗したとしても、失敗する前にGitで保存していると
いつでも元の状態に戻すことができます
すなわちgitを用いてデータを保存する利点の一つは
失敗してもいつでもどの地点にでも戻すことができる
といえます
2.複数人で共同開発しやすい
こちらのメリットを述べる前にgitの大事な概念の一つに
リポジトリとは先ほど述べたバージョン管理の内容を保存する場所みたいなものです
ローカルリポジトリはご自身のパソコン内にあります
リモートリポジトリ他のサーバにあるリポジトリのことで、インターネットでアクセスすることができます
それでは本題のgitを用いた複数人で共同開発しやすい仕組みについてお話しします
基本的には各々ローカルリポジトリ内で作業することになります
そしてローカルリポジトリ内で作業が完成した場合、リモートリポジトリに変更内容を記録します
ちなみにこの作業のことをgitではpushと呼んだりします
リモートリポジトリはネットを通じて他の作業者も見ることができますから
誰がいつ、どこの部分のデータに修正、あるいはデータを加えたのか
といったことが一目で分かります
また、メリット①で述べた通りリポジトリ(ロカール、リモート関わらず)はすべての変更内容を時系列で記録していますから修正前のものもいつでも再現することはできます
また先ほどのpushの逆の作業として、pullをすることでリモートリポジトリのデータを自分のロカールリポジトリに入れることもできます
このようにgitを使うことによって誰がいつ何をしたのかといった情報や、簡単にデータを共有できたりすることから、複数人によって開発を行う際に重宝されています
以上がgitについての説明です
②GitHubとは
それではGitHubとはなんでしょうか?
それは、リモートリポジトリのことです。
先ほどの図を使うとこういうことです
リモートリポジトリを提供してくれるサービスはGitHub以外にも存在しているので興味のある方は下記記事にて詳しく書かれていますのでご参考ください
以上がGitHubの説明です
この記事ではgitとGitHubについての説明を行いました
まとめますと、
gitは変更内容の保存に長けたサービス
GitHubはgitのリモートリポジトリを提供してくれるサービス
ということです
ご参考になれば幸いです