【初心者向け】git・github・gitbashってなに?【イラスト付きで仕組みまで理解できます】

  • 2021年12月8日
  • 2022年7月6日
  • git
  • 887view
git

プログラミングの勉強はじめてみたけど、たまにgitって言葉を聞くけど・・・

  • gitってなに?
  • gitを使うメリットってなに?使うべき?
  • gitに似ているgithub・gitbushってなに?

みなさんはこんな疑問をもっていませんか?

こんにちは!おへんじといいます!

私はプログラミングを独学で勉強しています

プログラミングを勉強していく中で『git』という言葉をよく耳にするようになりました

気になって調べて使ってみるとgitはすごく便利で素敵なツールだったので

今回は初心者の方でもgitについて理解できるように解説していきます

この記事を読むとわかること・・・

  • gitの仕組み
  • gitを使うメリット
  • gitbushやgithubって何?gitと何が違う?
おへんじ
イラスト多めで初心者でも理解できるように解説するね

その前にプログラミングってなに?って方は下の記事で解説しているので

参考にしてみてください


そもそもgitってなに?

gitとは・・・

まずはじめにgitについて解説していきます

まずはじめに結論をいっておくと・・・

  • ファイルの変更履歴を管理してくれる分散型バージョン管理ツール

見習くん
ちょっと何言ってるからわかりません泣
おへんじ
わかりやすい具体例をだして説明するから安心してね

まずはじめに

gitを使用しない場合のファイルの管理する方法を説明しておきます

あるファイルの一部分を変更したとします

その際に保存する方法は以下の2通りあります

  1. 上書き保存
  2. 名前を付けて保存

2つの保存方法はそれぞれにメリット・デメリットがあります

  • メリット :ファイルがごちゃごちゃしない(常に最新版が1つ)
  • デメリット:編集前のファイルが残らないため簡単に元に戻せない
  • メリット :編集前後の両方ファイルが残るため簡単に元に戻せる
  • デメリット:名前を付けて保存するたびにファイルが増えるためフォルダがごちゃごちゃしやすい
おへんじ
同じようなファイルがたくさんあると、どれが最新かわからないことあるよね

このようにどちらの方法でもファイルの管理は可能ですが、

それぞれに『編集前のファイルが残らない』、『ファイルが増えてフォルダがごちゃごちゃしやすい』

などの欠点があります

またプログラミングをしている場合は

  • プログラムファイルを修正したらエラーが出るようになって前の状態に戻したい
  • いつどんな変更をしたのか履歴として残したい
プログラムファイル・・・プログラムが書かれたファイルのこと

上記のような場面がよくあります

そんなときに上書き保存や名前を付けて保存では限界があります

そんなときに登場するのが『git』です

gitを使えば・・・

  • 編集後でも編集前の状態にすぐに戻せる
  • 変更履歴(いつどんな変更をしたのか)を残せる
  • 変更を履歴として残すためフォルダがごちゃごちゃしない
  • なぜ変更したのかのコメントも残すことができる
  • 複数人でプログラムファイルを修正することができる(効率的)
見習くん
めちゃくちゃ便利ですね
おへんじ
便利だからプログラミングをする会社ではgitを使っていることが多いよ
見習くん
でもなんでそんなことができるんですか?
おへんじ
次はその仕組みについて解説していくね

gitの仕組み

gitの仕組みを図にすると・・・

いきなり知らない言葉がでてきたので解説をしておきます

リポジトリ(repository):日本語で『貯蔵庫』や『容器』という意味でデータを保存する場所のこと

リモートリポジトリ:インターネット上にあるデータを保存する場所

ローカルリポジトリ:個別のパソコン上にあるデータを保存する場所

仕組みを簡単に説明すると・・・

リモートリポジトリと呼ばれる場所でデータを共有してファイルの管理ができます

おへんじ
リモートリポジトリはインターネット上にあるから使う人が離れていても共有できるよ

gitでは・・・

  • リモートリポジトリにファイルの変更を反映する操作
  • リモートリポジトリのデータをローカルリポジトリに引っ張ってくる操作

などの操作をすることができます(この他にもたくさんの操作があります)

ここまでの説明でgitはリモートリポジトリにデータを集めて

みんなでファイルを共有できることは理解できたと思います

gitにはもう1つ大きな特徴があるので説明しておきます

それは、gitはプログラムのバージョンを管理できる点です

gitにはブランチと呼ばれる概念があります

ブランチ:プログラムファイルの変更履歴を分岐させて記録する機能のことです
  • マスターブランチ:大元のプログラムファイル(リモートリポジトリのデータ)

いきなりブランチとか言われてもさっぱりわからないと思うので

パズドラで例えて説明していきます

まずパズドラなどのゲームは定期的にバージョンアップがあります

バージョンアップをすると新しい機能が追加されていたり

新たなダンジョンが実装されたりしていますよね

おへんじ
パズドラなどのゲームアプリは複数のプログラムファイルで作られているよ

バージョンアップをするということはパズドラのプログラムファイルが変更されたことになります

でもいきなり元のプログラムファイルを変更してしまうとエラーが生じる可能性があります

そうなるとユーザーがパズドラをプレイできなくなってしまします

それを回避するためにブランチという機能を使用します

ここでは、パズドラに機能Aを追加するとします

その機能Aを追加するためにマスターブランチ(現在運用中のパズドラ)からブランチAを作成します

※作成時点のブランチAはマスターブランチのファイルと中身は全く同じです

これからブランチAのファイルに機能Aを追加していきます

ブランチAのファイルを修正するのでマスターブランチ(現在運用中のパズドラ)の

プログラムファイルは変更せずに修正作業ができます

ブランチAで機能Aの追加が完了すると確認・修正作業を行います

エラーが出ないことを確認した後にマスターブランチ(現在運用中のパズドラ)に

ブランチAの内容を統合します

この手順で修正することで現在運用中のパズドラでエラーを起こすことなく

バージョンアップすることができます

例ではパズドラを使って説明しましたが、

gitを使用することで現在運用中のプログラムファイルを運用しながら

新たな機能の追加・不具合の修正などを行うことができます

また修正した箇所を複数人で確認しながら修正作業を行うことができます

おへんじ
ブランチAの履歴は残るし元のバージョンに戻すこともできるよ

git・git bash・git hubって何が違う?

ここまででgitの仕組みがなんとなーく理解できたところで

gitとセットでよく出てくる『git bash』や『git hub』についても説明をしておきます

おへんじ
gitとの違いを説明するね

git hubとは

git hubはgitをwebページで確認・管理ができるwebサービスのことです(無料)

どちらもgithub社によって開発・保守・運用されています

gitとの違いは・・・

  • git・・・みんなでプログラムファイルを管理できるツール
  • github・・・gitで管理している内容を確認できるwebサービス
おへんじ
『hub』は日本語で中心・中枢などの意味があるよ

初心者の方にもわかるように説明すると・・・

githubを使えばリモートリポジトリの変更履歴をwebページで確認・操作できます

リモートリポジトリは2種類あります

  1. 全世界に公開するリモートリポジトリ
  2. 特定の人しか閲覧できないリモートリポジトリ

githubでリポジトリを作成する際にどの種類にするのかを選択できます

〈githubでリポジトリ作成する画面〉(Public:全世界の人が閲覧できる Private:特定の人のみ閲覧できる )

そのため他の人がPublicに設定しているリポジトリは自由に閲覧することができます

git, githubを使用すれば全世界の人と自分のコードを共有してアドバイスを求めたり

有名な人のコードを参考にして開発のヒントにしたりすることができます

実際のgithubはこんな感じのwebページになっています

画像のwebページurl:pyxelのgithub

gitだけでプログラムファイルの管理をすることはできますが

gitの操作方法はCUI(コマンド入力による操作)のため内容を確認するには

都度コマンド操作が必要で少々手間です

そこでそれを解決するためのサービスとしてgithubがあります

ちなみに・・・

  • CUI:キーボードぽちぽちのみでパソコンに命令を出す方法
  • GUI:画面タッチ・マウスの操作でパソコンに命令を出す方法

CUIは下のような画面で専用のコマンドを入力することでパソコン操作を行います

〈ターミナル画面(Mac)〉

githubでは以下のことができます(一例です)

  • gitの変更履歴の確認
  • 他の人が変更した箇所に対してのコメント
  • リモートリポジトリの内容をローカルリポジトリに引っ張ってくる(その逆も可)
  • 全世界の人が書いているプログラムを閲覧できる(めちゃくちゃ勉強になります)

gitbashとは

一言でまとめると・・・

主にWindowsでgitを使用するために必要なBashエミュレータです

見習くん
ちょっと何言ってるからわかりません泣
おへんじ
できるだけわかるように丁寧に説明するから安心してね
  • Bashとは・・・シェルのこと
  • シェルとは・・・人間が入力した操作をコンピューター側に伝えるプログラム(受付のような中継的な役割)
  • エミュレーター・・・本来とは違う環境でも擬似的に動作するようにしたソフトウェア・ハードウェア

いろいろわからない言葉がたくさん出てきたと思うので

それぞれの言葉について分かりやすく説明しているサイトがあったので参考にしてみてください

要点をまとめると・・・

  • gitを使用するにはBashが必要
  • BashはWindowsに搭載されていない(MacやLinuxには標準搭載されている)
  • WindowsでBashを擬似的に動かすためのソフト(gitbash)が必要
おへんじ
MacやLinuxはOSのことだよ

OSについては以下の記事で解説していますのでよかったら参考にしてください

gitbushの画面は以下のような感じになっています

〈gitbash画面〉

ターミナルやコマンドプロンプト と同様の作りになってます

Windowsでgitbashを使うとMacやLinuxなどで使用するコマンドが使用できます


gitを使うべき理由

続いてgitを使うべき理由について説明します

同様な説明を上でしている部分もありますが大切なことなので

もう一度書いておきます

その1 プログラムのバージョンを管理できる

これが一番の理由というより

これができるからgitを使用します

gitの主な機能は・・・

  • バージョン管理ができる
  • 前のバージョン(変更前)のデータにすぐ戻せる
  • いつ(when)誰(who)が、どの(which)ファイルのどこ(where)をなぜ(why)変更したかを履歴で残せる
  • 機能を追加する際に他の人がコメントできる機能がある
  • エラー原因の特定に便利
おへんじ
リポジトリに変更履歴を残すことをコミット(commit)っていうよ

ここで1つワンポイントアドバイスです

細かく変更履歴(コミット)を残すとどこで間違えたのかを

特定しやすくなるので変更履歴(コミット)は細かく残すことをオススメします

このようにgitを使用することでバージョン管理、記録、エラーの特定などにも役立つのに

無料で使用できるので使用しない理由が見つかりません

その2 プログラマーとして必須のスキル

これはgitを使用するメリットではありませんが

gitが便利なのでプログラミングをする会社ではほとんどgitが使われています

そのためプログラミングを勉強していて転職を考えている方はgitは覚えておくべきです

というよりgitが使えないとプログラミングで仕事はできません

gitを使用するには覚えることがたくさんありますので

まずははじめにgitの仕組みから覚えていきましょう

gitの使い方についても後日解説予定としています

1人で趣味でプログラミングをはじめる場合もgitを使用するべきか

最後に1人で独学でプログラミングをする場合でもgitを使用するべきかを説明しておきます

結論から言うと・・・

  • 1人で始める場合もgitは使用するべきです

理由は以下のとおりです

  • プログラムの変更履歴を残せる
  • 元のバージョンにすぐに戻せる
  • 世界中の人のプログラムを参考にできる

しかし、ここで1つ注意点があります

それは・・・

プログラミング完全初心者はgitを始めることはオススメしません

理由は・・・

  • gitを扱うには覚えることがたくさんある
  • プログラミングは覚えることがさらにたくさんある
  • 一度にプログラミングのこともgitも勉強しようとすると挫折の原因となる

プログラミングの独学で一番大切なのはモチベーションの維持です

一度にたくさんのことに挑戦したい!という気持ちは大切ですが

一度にやりすぎると挫折してしまいます

そのため、まずはプログラミングの基礎を習得した後に

習得した内容でプログラムを作りたい!となった段階で

gitを習得することを強くオススメします

少しずつ取得して一緒に勉強をがんばっていきましょう


まとめ

そもそもgitってなに?

  • ファイルの変更履歴を管理してくれる分散型バージョン管理ツール

githubとは

  • git hubはgitをwebページで確認・管理ができるwebサービスのこと

gitbashとは

  • Windowsでgitを使用するために必要なBashエミュレータのこと

gitを使うべき理由

  • プログラムのバージョンを管理できる

  • プログラマーとして必須スキル
    (転職したいなら習得すべき)

1人で趣味でプログラミングをはじめる場合もgitを使用するべきか

  • 1人で始める場合もgitは使用するべき

    (バージョン管理できる、履歴が残せる)

git, github, gitbashについて少しでも理解できたでしょうか

gitを使用することで効率的にプログラミング作業が可能になります

覚えることはたくさんありますが少しずつ、一緒にプログラミングの勉強がんばっていきましょう!

ohenziblogはプログラミングを独学で始めるための徹底ガイドを目指しています

最新情報をチェックしよう!