Git

そもそも Git とは?

「Git って何?」「なぜ使うの?」という疑問にゼロから答えます。
プログラミングを始めると必ず出てくる Git の正体を、たとえ話を交えてわかりやすく解説します。

まず「バージョン管理」とは?

概念

ファイルの変更履歴を記録・管理する仕組みのことです。
バージョン管理がないと、こんなことが起きます:

よくある「バージョン管理なし」の悲劇

📄 report.docx
📄 report_最終.docx
📄 report_最終2.docx
📄 report_最終_本当に最終.docx
📄 report_最終_本当に最終_修正.docx
← どれが本物…?

バージョン管理ツールを使うと、ファイルを1つのまま保ちながら、 すべての変更履歴を自動で記録できます。 いつでも過去の状態に戻せるので、安心して編集できます。

Git とは?

用語

Git は、ソースコードの変更履歴を管理するためのツール(分散型バージョン管理システム)です。
2005年に Linux の生みの親リーナス・トーバルズが開発しました。

📸

変更を記録する

いつ・誰が・何を変えたか、すべてのスナップショットを保存する。

いつでも戻れる

バグを入れてしまっても、1つ前のセーブデータに戻せる。

🤝

チームで開発できる

複数人が同じコードを別々に変更しても、あとで合流(マージ)できる。

Git がない世界 vs Git がある世界

😰 Git がない世界

  • ファイルを上書きしたら元に戻せない
  • バックアップのためにファイルを何十個もコピー
  • 複数人での開発で誰かが誰かの変更を消してしまう
  • 「昨日まで動いていたのに…」どこで壊れたか不明
  • 新機能を試したいが本番コードを壊しそうで怖い

😊 Git がある世界

  • いつでも過去の状態に戻せる(セーブデータ感覚)
  • ファイルは1つのまま、履歴だけが積み重なる
  • 誰がいつ何を変えたかすべて記録されている
  • 複数人の変更を安全に合流(マージ)できる
  • ブランチで安心して新機能を試せる

「分散型」って何が違うの?

概念

Git は分散型バージョン管理システムです。 各自のPCに完全なリポジトリ(履歴ごと)がコピーされます。 サーバーが落ちていても作業を続けられ、後でまとめて同期できます。

集中型(旧来の方式)

サーバー(履歴の本体)
↕️ ↕️ ↕️
PC A
PC B
PC C

サーバーが止まると全員作業不能

分散型(Git の方式)

リモート(共有用)
↕️ ↕️ ↕️
PC A
履歴あり
PC B
履歴あり
PC C
履歴あり

各PCが完全なコピーを持つ

Git の基本用語

用語集
🗂️

リポジトリ(Repository)

用語

ファイルと変更履歴をすべて保存する「プロジェクトの保管庫」。.git フォルダとして存在する。

📸

コミット(Commit)

用語

ある時点の変更を記録したスナップショット。「セーブデータ」のイメージ。メッセージを付けて何の変更か説明する。

🌿

ブランチ(Branch)

用語

本流に影響を与えずに変更を試せる「作業用のコピー」。作業が終わったら本流に合流(マージ)できる。

📁

ワーキングツリー

用語

実際にファイルを編集する場所。普段目で見て触っているフォルダそのもの。

📋

ステージングエリア

概念

次のコミットに含める変更を一時的に置いておく場所。「この変更だけ記録する」と選べる。

🔗

クローン(Clone)

概念

リモートリポジトリ(GitHubなど)から自分のPCへ丸ごとコピーすること。

Git は入っている?確認してみよう

コマンド

ターミナル(Mac: Terminal / Windows: Git Bash)を開いて、以下を入力してください。

ターミナル
$ git --version # インストール済みの場合(バージョン番号は異なってよい) git version 2.43.0 # 入っていない場合 command not found: git

Mac の場合

Xcode Command Line Tools に含まれています。
インストールは xcode-select --install を実行してください。

Windows の場合

Git for Windows(git-scm.com)から公式インストーラーをダウンロードして実行してください。

次のステップ