Git

分散型バージョン管理システムで、ソースコードの変更履歴を管理する

バージョン管理開発ツール
Git」の技術書を見る (82 冊) →

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

.gitignore を図で示す。

node_modules/
dist/
.env
*.log
.DS_Store

GitHub との関係

Git はバージョン管理ツール、GitHub は Git リポジトリのホスティングサービス。GitHub は PR、Issue、Actions (CI/CD) などの協業機能を提供する。

SVN との違い

SVN との違いを以下にまとめる。

観点Git (分散型)SVN (集中型)
リポジトリ各開発者が完全コピーサーバーに 1 つ
オフライン作業
ブランチ軽量 (ポインタ)重い (ディレクトリコピー)
速度高速 (ローカル操作)低速 (サーバー通信)

理論と実装の両面から学ぶなら関連書籍が参考になる。

この記事は役に立ちましたか?

関連用語

関連する記事