githubっておいしいの? githubって何がすごいの? gitとgithubの違いが知りたい...
こういった疑問に答えます。
Githubとは「ソースコードをみんなに共有する場所」
みなさんに前提をお伝えします。もしあなたがGitを知らなければ、Githubの前に「Gitの説明」が不可欠です。
そのため、まずGitについて書きます。知っている方は読み飛ばしてくださいね。
Gitとは「バージョン管理システムの1種」
「バージョン管理システムって何?」って方へ、バージョン管理システムとは「コード内容を誰が・いつ・どの部分を編集」したかについて「履歴を残すシステムのこと」です。
Gitの特徴とメリット
まずメリットから
その① : みんなで1つのソースコードファイルを編集できる
6人でこのアプリのコードを完成させたい! → Gitは「全員が上書きを同時にできる仕組み」。
その② : 過去の編集履歴を復元できる
あ、間違えて消しちゃった.. → Gitは履歴を簡単に復元できる。
その③ : 最新データがすぐわかる
みんなで上書きしたけど、どれが最新のコードファイル? → Gitは最新のデータがすぐわかる。
特徴
Gitは分散型で安全(リモートリポジトリ
ローカルリポジトリ)分散型が安全である理由は、リモートリポジトリ(サーバ側)のデータが消えてもローカルリポジトリがあることで「データを失わずに済む」ためです。 ローカルリポジトリとリモートリポジトリの説明は下に書きます。
- ローカルリポジトリ = PCにあるコード置き場
- リモートリポジトリ = サーバー上1つだけの全員で共有アクセスできるコード置き場
ローカルリポジトリは「PCの持ち主」しかアクセスできませんが、リモートリポジトリは「全員」がアクセスできます。
そして、まさにこの「リモートリポジトリ」のことを「Github」というのです。(厳密にはGithubをもう少し分類できます。ただ、このように捉えて何の問題もありません)下にイメージを載せさせて頂きます。
Githubは「Gitのコード内容の履歴をチームで共有するためのツール」
Githubでできることは?
その① : コードの共有
「みんな!俺が作ったコード見てみてよ」
その② : コードを修正してもらう
「俺が作ったコードもっといい書き方ない?みんな教えて!」
その③ : みんな(世界中)にコードを公開できる
「世界中のみんなにもこのソースコード見せてあげよう!」
ちなみに、コードを全世界に共有できるGithubの仕組みをoss(open source software)といいます
英語ですが、GithubとGitのわかりやすいイメージがありましたので、下に載せます。イメージ作成者に感謝です。
簡単に順を追って説明します。
webアプリ開発を3人でする場合を想像してください。
- 順序①:まず、Webアプリのソースコードをfile.txtに書きます(あなたのPC)
- 順序②:次に、file.txtをローカルリポジトリに入れます(あなたのPC/Gitを使う)
- 順序③:ローカルリポジトリからGithubにfile.txtたちを送ります(3人と共有のため)
- 順序④:Githubからみんながfile.txtたちを手にいれ、修正します
- 順序⑤:修正されたコードをあなたがGithubから手に入れます
この順序①から⑤をひたすら繰り返すのです。
実際にこの操作をする場合の具体的なコードは、下の記事に書きました。
おわりです〜。