🏗️
🏗️

4 Domains

  • Workspace, Index, Local Repo, Remote Repoの4層構造。

  • ファイルが今どこにあるかを把握することが上達の近道。

  • 各領域間のデータ移動をコマンドで制御する。

Slide 1 of 3Remaining 2

1. Gitのアーキテクチャ:4つの領域

Gitを理解する第一歩は、ファイルが今「どこ」にあり、「どこ」へ向かおうとしているのかを把握することです。Gitには大きく分けて4つの領域が存在します。

graph LR WS[Workspace] -- "git add" */} IDX[Staging Area] IDX -- "git commit" */} LOC[Local Repo] LOC -- "git push" */} REM[Remote Repo] REM -- "git fetch" */} LOC LOC -- "git switch" */} WS IDX -- "git restore" */} WS style WS fill:#f9f,stroke:#333 style IDX fill:#bbf,stroke:#333 style LOC fill:#bfb,stroke:#333 style REM fill:#fbb,stroke:#333
  • Workspace : 実際にあなたがファイルを編集している場所です。
  • Index (Staging Area) : 次のコミットに含める変更を一時的に保存する場所です。
  • Local Repo : 自分のPC内にあるコミット履歴のデータベースです。
  • Remote Repo : GitHubなどのサーバー上にある共有のデータベースです。

2. Gitはグラフ(DAG)である

Gitのコミット履歴は、単なる一本の線ではありません。 DAG (Directed Acyclic Graph: 有向非巡回グラフ) と呼ばれるデータ構造です。

gitGraph commit id: "Initial" commit id: "Add logic" branch develop checkout develop commit id: "Feature A" commit id: "Feature B" checkout main merge develop commit id: "Release 1.0"

各コミットは「親」へのポインタを持っており、ブランチ(mainやdevelop)は特定のコミットを指し示す単なる ポインタ(動くラベル) に過ぎません。


3. モダンGit:checkout から switch/restore

2026年現在、多くの現場では従来の git checkout は使われなくなっています。なぜなら、checkout は「ブランチの切り替え」と「ファイルの復元」という全く異なる2つの役割を持っていたため、誤操作のリスクが高かったからです。

Git v2.23以降、これらは明示的に分割されました。

役割 旧コマンド (Deprecating) 新コマンド (Modern)
ブランチ切り替え git checkout <branch> git switch <branch>
新ブランチ作成 git checkout -b <new> git switch -c <new>
ファイル変更破棄 git checkout -- <file> git restore <file>
ステージから降ろす git reset HEAD <file> git restore --staged <file>

なぜ新コマンドが推奨されるのか?

  • + 役割が明確に分離されており(切り替え vs 復元)、誤操作が減る
  • + 引数の解釈が直感的になり、意図しない上書きを防げる
  • + 2.23以降の標準であり、ドキュメントやAIの提案もこれに移行中
  • - 長年連れ添った指の筋肉(タイピング癖)を直す必要がある
  • - 非常に古いGit環境(サーバー等)では動作しない可能性がある

例:安全なブランチ切り替え

Terminal
# 安全に新しいブランチを作成して切り替え
$ git switch -c feature/new-logic

# 前のブランチに即座に戻る

$ git switch -

4. デイリーワークフロー:2026年標準

標準的な開発サイクルを StepRoadmap で確認しましょう。

1

1. 同期

git pull origin main --rebase

朝一番
2

2. 実装開始

git switch -c create-feature

+5 min
3

3. ステージング

git add .

+30 min
4

4. コミット

git commit -m "feat: add new visualization"

+2 min
5

5. プッシュ/PR

git push origin create-feature

完了時
ℹ️

Tip : git pull --rebase を使うことで、マージコミットを抑え、綺麗な一本の履歴を保つことができます。


5. 高度な基礎:Sparse Checkout

モノリポジトリ(巨大なリポジトリ)で作業する場合、リポジトリ全体をローカルに落とすのは非効率です。2026年では git sparse-checkout が標準的に利用されます。

Terminal
# 必要なディレクトリだけをチェックアウト対象にする
$ git sparse-checkout set src/components docs/

これにより、数ギガバイトあるリポジトリでも、必要な数メガバイト分だけで作業を開始できます。


6. まとめ:視覚的に考える

Gitで迷ったら、「今、グラフのどの点(コミット)にいて、ブランチというポインタがどこを指しているのか」を図解して考える癖をつけましょう。

引用: YouTube

この記事が、あなたのGitライフをより円滑にすることを願っています。