9
Help us understand the problem. What are the problem?

posted at

updated at

【GitとGitHubの違い】「Git/GitHub?なんて読むん?」と思っていた初学者の私による初学者のためのアウトプット

1. はじめに

筆者「プログラミングの勉強を始めました!バキバキに勉強しておもろいアプリ作れるようになりたいなぁ〜!」

開発現場 「そらええな〜。どんなことやってはるん?なになに?え、GitとGitHubも使えへんのん?...せや、ぶぶ漬けでも食べて行かはりまっか?^^」

・・・

どうやら言語を勉強するだけではあかんらしい。

でも待って!!!!!何それまずなんて読むの〜〜!?!?!

2. Git,GitHubの読み方

Git「ギット」
GitHub「ギットハブ」

ふむ。でも待って?本やネットでこういう記述あるけどさ →  Git/GitHub

3. GitとGitHubって気分で呼び分けてるん?それとも別物?

やりたいことは似てるけど違います。

それを聞いた筆者は「ああ、ポケットモンスター ルビー/サファイアみたいなもん?」と思っていました。

違います。

どちらかといえばピカチュウがライチュウに進化...いや、これも違うか。
吉良吉影にバイツァ・ダストが覚醒した感じに近いかもしれない。

※感じ方には個人差があります

4. GitとGitHubの共通点、相違点、役割について

じゃあ、その似てるっていう「やりたいこと(役割)」と「違い」って何なん?
お待たせしました。ようやく本題です。(余計なことを喋りすぎや)

4-1. 共通点

前述の通り、やりたいことの本質は同じです。
それは、「ソースコード等のバージョン管理をするためのシステム」だということです。

「書いてるコードのセーブデータを貯めておく倉庫を作って、コードを書き足すたびにセーブするためのシステム」と言い換えれば、バイオハザードの手動セーブのようなイメージが近いのではないでしょうか。

4-2. 相違点

Gitを利用することで、下記のようなことが叶います。

  • 変更内容を好きなタイミングで保存できる
  • コードを書いていく中で思わぬ不具合が出た場合でも、いつでも過去に保存した内容へ戻れる。
  • 共同開発をする際、開発している本体のコードに反映させず変更の保存をすることができる

めっちゃ便利やん!と、思いますよね。筆者も思いました。でもそれだけでは不都合なことがあるんです。

  • パソコンが壊れてしまうと過去の履歴が消えてしまう
  • 可視化しにくい(ターミナル操作で動くので、twitterのwebアプリのような見やすい形ではない)
  • 共同開発をする際、コードの共有やレビューがしにくい(Gitは自分用だから)

なるほど、確かにもっと便利なもんがあったら嬉しいわな。
そして、そんな不都合からエンジニアたちを救ってくれるのがGitHub。吉良吉影が窮地に追い込まれた際バイツァ・ダストが覚醒したのと同様、GitHubはGitの弱点を補ってくれてます。相違点は大きく分けて3つ。

  1. バージョン管理する場所(自分のPC内 or インターネットのクラウド上)
  2. 自分以外の人と共有しやすいか否か
  3. 可視化しやすいか否か

順に見ていきましょう。

1. バージョン管理する場所(自分のPC内 or インターネットのクラウド上)

Gitは自分のPC上で、GitHubはインターネットのクラウド上で管理します。
これでPCが壊れても安心ですね!そしてインターネットにコードを保存できることで後述の「共有」の面でもメリットを得ることができるようになります。

2. 自分以外の人と共有しやすいか否か

私たちは普段からインターネットを使用して様々なデータを交換しあっています。それがコードの書かれたファイルやディレクトリになっても同じで、GitHubがインターネットを利用するおかげでデータ共有を簡単にすることができます。また、GitHubはSNS機能を備えているため、複数人とのやり取りでもコミュニケーションが円滑に取れます。

3. 可視化しやすいか否か

Gitはターミナルの画面が全てなので、目に見えるのは文字、文字、文字。いつ何をあげたのか、すべて書かれてはいますが文字だらけ。一方GitHubはWebアプリなので、より感覚的にデータ管理を行うことが可能になります。しかもWeb上で操作できる!

4-3. 役割

上記共通点と相違点を総括すると、Git/GitHubの役割は以下の通り。

  • Gitはコードに加えた変更を自分のPC上に保存していき、自分の加えた変更の保存データを管理する。
  • GitHubは、自分のPC上で書き上げたコードやその変更をインターネットのクラウド上に保存管理し、複数人で共有することができる。
  • Gitで管理したコードをGitHubに送り込む

ここで、「おや?」と思った方もいらっしゃるかもしれません。そうです、GitHubで管理しようとするにはまず、Gitで管理されていることが前提条件なのです!ふたつは繋がっていた!

5. Git/GitHubの仕組み

ではどのようなフローでGitでコードを管理して、それをGitHubに上げるのかを見ていきましょう。

Gitの仕組み

Gitのソースコード管理において理解しなければいけないのはリポジトリコミットステージングエリア(待機用リポジトリ)の3つ。では、順に見ていきましょう。

①リポジトリ

  • ファイルやディレクトリの状態を記録する貯蔵庫
  • 管理したいディレクトリをここに記録することで、ディレクトリ内ファイルの変更履歴を記録できる。

②コミット

  • リポジトリに変更内容を記録するための動作のこと。またはリポジトリに記録すること。
  • ステージングエリアにあるディレクトリやファイルをリポジトリに動かすこと。

③ステージングエリア

  • コミットしたいものが入っているディレクトリがGit管理できる状態で、ファイルやディレクトリを選択してコミットする前に一旦ここに入れる
  • リポジトリに移す前の待機場所。(なんで一発でコミットさせてくれへんねんと筆者は思っていますが、きっと理由があるんでしょうね…)

GitHubの仕組み

Gitでコミットしたものが入っているリポジトリを入れるためのローカルリポジトリを作成した後、プッシュという操作をすることでGit管理していたものをGitHubに移すことができます。

Untitled Diagram.drawio (4).png

6. 最後に

今までの内容の要点ををまとめると、

  • GitもGitHubも、ソースコードのバージョン管理をするためのもの。
  • Gitは自身のPCに保存され、GitHubはインターネットのクラウド上に保存される。
  • Gitはターミナル上で確認でき、GitHubはインターネットのwebブラウザ上で操作できる。
  • GitHubは他の人にコードを共有するのみ便利なので、共同開発でよく用いられる。
  • 「GitにコミットされたものをGitHubに共有する」という流れになるので、これらの違いをよく理解してどちらも使えるようになりましょう!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
9
Help us understand the problem. What are the problem?