Gitって何?わかりやすく解説

「ファイルを上書きしたら前のやつが消えた…」「どこを直したか忘れた…」「チームで同じファイルを編集したら、どっちが正しいかわからなくなった…」そんな経験、一度はあるんじゃないかな。そのモヤモヤをまるごと解決してくれるのが、今日紹介する Git(ギット) だよ。この記事を読めば、Gitって何なのか・何ができるのか・なぜエンジニアが全員使っているのかが、スッキリわかるよ。

Gitって名前は聞いたことあるけど、結局何するやつなの?

一言でいうと、ファイルの変更履歴をずっと記録しておいてくれるツールだよ。ゲームのセーブデータに例えると分かりやすいかな。ボスを倒す前にセーブしておけば、負けても戻れるよね。Gitも同じで、「ここまで完成した」というタイミングで記録を残しておけば、いつでも過去の状態に戻せるんだよ。
じゃあ、フォルダに「最終版」「最終版2」「本当の最終版」ってファイルを作るのと何が違うの?

その方法だと、「どこを直したか」が全然わからないよね。Gitは変更した場所・日時・理由をセットで記録してくれるから、あとから見たときに「あ、ここをこう直したんだ」ってすぐわかるんだよ。しかもファイルをコピーしまくらなくていいから、フォルダがごちゃごちゃにならないのも大きなメリットだよ。
複数人で同じファイルを触ったらぐちゃぐちゃにならないの?

そこもGitが得意なところ! ブランチという「作業用の分岐」を作れるから、Aさん・Bさんがそれぞれ別の場所で作業して、あとから一つにまとめられるんだよ。料理に例えると、Aさんがスープを作りながら、Bさんがサラダを作って、最後に一つのテーブルに並べる感じだね。
GitHubとGitって同じもの?

全然ちがうよ! Gitはパソコンにインストールして使うツール(道具)そのもの。GitHubはGitで管理したファイルをインターネット上に保存・共有できるサービスのことだよ。Gitがノートで、GitHubがそのノートを保管するクラウドロッカーみたいなイメージかな。
📝 3行でまとめると
  1. Gitはファイルの変更を記録する バージョン管理ツール で、いつでも過去の状態に戻せる
  2. ブランチ を使えば複数人が同時に作業しても、最後にきれいにまとめられる
  3. GitとGitHubは別物で、GitHub はGitの記録をクラウドで共有するサービスのことだよ
目次

もうちょっと詳しく

Gitが世界中のエンジニアに使われている理由は、「失敗しても怖くない」からだよ。コードを大きく書き換えたい・新しい機能を試したい、そんなときに「失敗したら戻せない」という恐怖があると、なかなか挑戦できないよね。でもGitがあれば、現時点の状態を記録してから作業に入れるから、どんなに大胆な変更も「まあ最悪戻せばいいか」って気持ちで進められるんだよ。これはプログラムだけじゃなくて、卒業論文の原稿管理や、設計書の更新履歴管理にも使われているくらい、汎用性の高い仕組みなんだ。最初の設定だけ少し手間がかかるけど、一度覚えてしまえば「もうGitなしでは怖くて作業できない」ってなるよ。

💡 ポイント
Gitは「失敗を取り消せる安心感」が最大の強みだよ!

⚠️ よくある勘違い

❌ 「GitはGitHubがないと使えない」
→ GitはPC単体でも完全に動く。GitHubはあくまでクラウドへの「保存先」の一つにすぎないよ。
⭕ 「Gitはローカル(自分のPC)だけでも使える」
→ ひとりで作業するときはGitだけで十分。チームで共有したいときに初めてGitHubが登場するよ。
なるほど〜、あーそういうことか!

[toc]

Gitってそもそも何?ゲームのセーブ機能で理解しよう

ファイルの「歴史」を記録するツール

Gitとは、つまり「ファイルに行った変更を日時・内容・理由ごとに記録しておける仕組み」のことだよ。正式にはバージョン管理システムと呼ばれていて、バージョン管理とはつまり「ファイルのどのバージョン(版)がいつ存在したかを管理すること」という意味だよ。

分かりやすく例えるなら、ゲームのセーブ機能そのものだよ。ダンジョンに入る前にセーブしておけば、ボスに負けても「ゲームオーバー=全部消える」にはならないよね。Gitも一緒で、作業の区切りごとに「ここまでできた!」という記録(これをコミットと呼ぶよ)を残しておける。コミットとはつまり「変更内容をGitに登録する操作」のことだよ。コミットした時点の状態はいつでも呼び出せるから、「あのときのコードに戻りたい」がいつでもできるんだ。

「最終版」地獄から解放される

Gitを知る前のエンジニアが必ずやるのが、「report_最終版.docx」「report_最終版2.docx」「report_本当に最終.docx」という地獄のファイル名管理だよ。どれが最新かわからなくなるし、何をどう直したかも全然わからない。Gitを使えば、ファイルは1つのままで、その内部に「いつ・何を・なぜ変えたか」が全部記録されるんだよ。しかも、変更前後の差分(さぶん)、つまり「何行目のどこが変わったか」もひと目で確認できるから、修正のミスも格段に見つけやすくなるよ。

コミット・ブランチ・マージ──3つのキーワードで使い方が見えてくる

コミット:変更を「セーブ」する操作

さっきも出てきたコミットをもう少し掘り下げるよ。コミットするときは、変更内容と一緒に「なぜこの変更をしたか」を一言メモできるんだ。このメモのことをコミットメッセージと言って、「ログイン画面のボタンの色を変えた」「バグを修正した」みたいに書くのが普通だよ。あとからそのメモを見れば、「なぜそうなったか」がすぐわかる。チームで作業するときは、このメモがないと「誰がなんでこれを変えたの?」と大混乱になるから、丁寧に書く習慣がとても大切なんだよ。

ブランチ:作業を「分岐」させる仕組み

ブランチとはつまり「メインの作業から枝分かれした、作業専用のコピー空間」のことだよ。木の枝(ブランチ)に例えているだけあって、本体(幹)とは独立して作業できるんだ。たとえばWebサイトをチームで作るとき、AさんはTOP画面の修正、Bさんはログインページの修正、CさんはAPIの改修……と、それぞれ別のブランチで同時に作業できるんだよ。本体を壊す心配がないから、大胆にコードを試せるのが最大のメリットだよ。

マージ:分岐を「1つにまとめる」操作

各ブランチで作業が終わったら、最終的にメインのブランチに合流させる。この操作をマージと言って、つまり「2つ以上の変更を1つにまとめること」だよ。同じ行を別々の人が変更していたら、どちらを正解にするか確認が必要になることもある。これをコンフリクト(衝突)と言って、初心者が一番ビビるポイントだけど、Gitがどこが衝突しているかを教えてくれるから、落ち着いて1か所ずつ解決できるよ。

GitHubとの違いって?クラウド保存の役割を理解しよう

GitはツールでGitHubはサービス

これは本当に混同しやすいポイントだよ。Gitはパソコンにインストールして動かすソフトウェア(道具)そのもので、インターネットがなくてもローカル(自分のPC内)で完結して使えるんだ。一方GitHubは、Gitで記録した内容をインターネット上にアップロードして保存・共有できるウェブサービスだよ。

例えるなら、Gitが「日記帳」で、GitHubが「その日記帳を家族みんなで読み書きできるようにしたオンラインノート」みたいなイメージだよ。ひとりで作業するなら日記帳(Git)だけでいい。チームで共有したいなら、オンラインノート(GitHub)に上げれば、誰でもどこからでもアクセスできるようになるんだよ。GitHubの他にも、GitLabやBitbucketという同じ役割のサービスがあるよ。

プルリクエストって何?

GitHubを使うとプルリクエストという機能が使えるようになるよ。プルリクエストとはつまり「自分のブランチをメインブランチにマージしていいか、チームに確認・レビューしてもらうための申請」のことだよ。コードを書いたら、いきなりマージするんじゃなくて、チームメンバーに「このコードどうかな?」と見てもらってからまとめる文化がエンジニアの世界では当たり前になっているんだよ。これによって、バグの混入を早い段階で防ぎやすくなるんだ。

Gitを使うと具体的に何が変わる?エンジニアの日常で考える

「昨日まで動いてたのに今日動かない」が解決できる

Gitがない状態でコードをいじってバグが出ると、「どこを変えたせいで壊れたんだろう…」って途方に暮れるよね。でもGitがあれば、コミット履歴を見れば「昨日のこのコミットの後から動かなくなった」とすぐわかるんだよ。さらに、その変更前後の差分を表示できるから、「この1行を変えたせいだ!」と原因が一瞬で特定できるんだ。これはプログラミングに限らず、HTMLやCSSの編集、文章の修正にも使えるよ。

チームでのファイル管理が劇的にスムーズになる

チームでGoogleドキュメントを同時編集したとき、気づいたら誰かの文章が消えてた経験ない? プログラムの世界でも同じことが起きるんだよ。Gitを使えば、それぞれが独立したブランチで作業して、最後にまとめるからそういう事故がなくなる。しかも誰がいつ何を変えたかが完全に記録されているから、「このバグ誰が入れたの?」もすぐわかる(怖いけど便利だよ笑)。

オープンソースへの参加もGitがカギ

GitHubには世界中のエンジニアが作ったプログラムが公開されていて、それをオープンソースと言うよ。オープンソースとはつまり「コードを誰でも自由に見たり改変したりできるように公開された開発物」のことだよ。Gitの使い方を覚えると、そういった世界中のプロジェクトに自分も貢献できるようになるんだ。「ここバグじゃない?」と修正してプルリクエストを送ったら、開発者に取り込まれた、なんてことも珍しくないよ。Gitは個人の開発効率を上げるだけじゃなくて、世界中のエンジニアをつなぐインフラにもなっているんだよ。

Gitを始めるために最初にやること

インストールからはじめる

Gitは無料で使えるよ。「Git 公式サイト」で配布されているインストーラーをダウンロードして、案内通りに進めればOKだよ。インストールが終わったら、ターミナル(コマンドプロンプトやPowerShell)を開いて git --version と入力してみよう。バージョン番号が表示されたらインストール成功だよ。

3つのコマンドだけ覚えれば最初は十分

Gitはコマンドラインで操作するイメージが強いけど、最初に覚えるべきコマンドは実は3つだけだよ。

  • git init:Gitの管理を始める(「ここからGitで記録するよ」と宣言する操作)
  • git add:変更したファイルを「コミットの準備」に加える操作。つまり「このファイルを記録対象にするよ」と教える操作だよ
  • git commit:変更を正式に記録する操作。メッセージを一緒に書くのを忘れずに

この3ステップを繰り返すだけで、ファイルの変更履歴がどんどん積み上がっていくんだよ。最初は「init → add → commit」のリズムを体に染み込ませることが一番の近道だよ。GUIアプリ(画面で操作できるもの)もたくさんあるから、コマンドが苦手な人はそっちから始めてもOKだよ。

VSCodeと組み合わせると最高に使いやすい

プログラムを書くエディタとして人気のVSCode(Visual Studio Code)は、Gitと最初から連携できる仕組みが入っているよ。どのファイルが変更されたか、どこが変わったかを色で表示してくれるから、コマンドをあまり覚えなくてもGitの恩恵を受けられるんだよ。GitもVSCodeも無料だから、これからプログラミングを始めたいなら、セットで入れておくのがおすすめだよ。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大人になってから「これ知らなかった…」と恥ずかしい思いをした経験から、このサイトを作りました。お金・仕事・社会のしくみって、学校で教えてくれないのに知らないと損することだらけ。むずかしい言葉を「あーそういうことか!」って思えるまでかみ砕いて説明するのが得意です。主に経済・法律・税金・ライフイベント周りの用語を毎日更新中。

目次