Git
分散型バージョン管理システムで、ソースコードの変更履歴を管理する
バージョン管理開発ツール
Git とは
Git は、Linus Torvalds が 2005 年に Linux カーネルの開発のために作成した分散型バージョン管理システムである。各開発者がリポジトリの完全なコピーを持ち、オフラインでもコミットやブランチ操作ができる。
基本概念
Working Directory → Staging Area → Local Repository → Remote Repository
(作業ディレクトリ) (git add) (git commit) (git push)
| 概念 | 説明 |
|---|---|
| コミット | 変更のスナップショット |
| ブランチ | コミットへのポインタ |
| HEAD | 現在のブランチの先頭 |
| リモート | GitHub 等のリモートリポジトリ |
| マージ | ブランチを統合 |
| リベース | コミット履歴を書き換えて統合 |
よく使うコマンド
# 基本操作
git add . # ステージング
git commit -m "Add feature" # コミット
git push # リモートにプッシュ
git pull # リモートから取得 + マージ
# ブランチ
git checkout -b feature/login # ブランチ作成 + 切り替え
git merge feature/login # マージ
git branch -d feature/login # ブランチ削除
# 履歴
git log --oneline --graph # コミット履歴
git diff # 差分表示
git blame file.ts # 行ごとの最終変更者
# 取り消し
git reset --soft HEAD~1 # 直前のコミットを取り消し (変更は保持)
git stash # 変更を一時退避
git stash pop # 退避した変更を復元
マージ vs リベース
| 観点 | マージ | リベース |
|---|---|---|
| 履歴 | マージコミットが残る | 直線的な履歴 |
| コンフリクト解決 | 1 回 | コミットごとに解決 |
| 安全性 | 履歴を書き換えない | 履歴を書き換える |
| 推奨場面 | PR のマージ | ローカルブランチの整理 |
.gitignore
node_modules/
dist/
.env
*.log
.DS_Store
GitHub との関係
Git はバージョン管理ツール、GitHub は Git リポジトリのホスティングサービス。GitHub は PR、Issue、Actions (CI/CD) などの協業機能を提供する。
SVN との違い
| 観点 | Git (分散型) | SVN (集中型) |
|---|---|---|
| リポジトリ | 各開発者が完全コピー | サーバーに 1 つ |
| オフライン作業 | ✅ | ❌ |
| ブランチ | 軽量 (ポインタ) | 重い (ディレクトリコピー) |
| 速度 | 高速 (ローカル操作) | 低速 (サーバー通信) |
理論と実装の両面から学ぶなら関連書籍が参考になる。