Gitコマンド完全ガイド:初級・中級・上級に分けて徹底解説
はじめに
「Gitのコマンドが多すぎて覚えられない…」と感じたことはありませんか?
実は、日常的に使うコマンドは限られています。この記事では、よく使うGitコマンドを初級・中級・上級の3段階に分けて解説します。自分のレベルに合わせて少しずつ習得していきましょう!
🟢 初級:まずはこれだけ覚えよう
Git を始めたばかりの人が最初に覚えるべきコマンドです。これだけ使えれば、個人プロジェクトは問題なく管理できます。
git init — リポジトリを作成する
git init
プロジェクトフォルダをGitで管理できるようにします。一番最初に一度だけ実行します。
git clone — リモートのリポジトリをコピーする
git clone https://github.com/user/repo.git
GitHubなどにあるリポジトリをローカルにコピーします。チームのプロジェクトに参加するときや、OSSのコードを手元で動かしたいときに使います。
git status — 現在の状態を確認する
git status
どのファイルが変更されているか、ステージングされているかを確認します。迷ったらとりあえず git status を叩く習慣をつけましょう。
git add — 変更をステージングする
git add <ファイル名> # 特定のファイルをステージング
git add . # すべての変更をステージング
コミットしたい変更を「準備」する操作です。git add . は便利ですが、意図しないファイルも含まれることがあるので注意しましょう。
git commit — 変更を記録する
git commit -m "変更内容のメッセージ"
ステージングした変更をリポジトリに記録します。メッセージは「何をしたか」が分かるように書くのがポイントです。
良いコミットメッセージの例:
✅ "ログイン機能を追加"
✅ "バグ修正:パスワードの検証処理"
❌ "修正"
❌ "あああ"
git log — 履歴を確認する
git log # 詳細な履歴
git log --oneline # 1行で表示(見やすい)
コミットの履歴を確認します。--oneline オプションをつけるとスッキリ見えておすすめです。
git push — リモートに反映する
git push origin main
ローカルの変更をGitHubなどのリモートリポジトリに送信します。
git pull — リモートの変更を取得する
git pull
チームメンバーの変更をローカルに取り込みます。作業を始める前に毎回 git pull する習慣をつけましょう。
🟢 初級チートシート
| コマンド | 説明 |
|---|---|
git init |
リポジトリを初期化 |
git clone <URL> |
リモートリポジトリをコピー |
git status |
現在の状態を確認 |
git add <ファイル> |
ファイルをステージング |
git add . |
すべての変更をステージング |
git commit -m "メッセージ" |
変更を記録 |
git log --oneline |
コミット履歴を確認 |
git push origin main |
リモートに反映 |
git pull |
リモートの変更を取得 |
🟡 中級:チーム開発で使いこなそう
ブランチを使った開発や、間違えたときの修正など、チームで開発するときに必要なコマンドです。
git branch — ブランチを管理する
git branch # ブランチ一覧を表示
git branch <ブランチ名> # 新しいブランチを作成
git branch -d <ブランチ名> # ブランチを削除
ブランチとは、作業を「分岐」させる機能です。新機能の開発やバグ修正を本流(main)に影響なく進められます。
git switch — ブランチを切り替える
git switch <ブランチ名> # ブランチを切り替え
git switch -c <ブランチ名> # 新しいブランチを作成して切り替え
💡 古いGitでは
git checkoutが使われていましたが、現在はgit switchが推奨されています。
git merge — ブランチを統合する
git merge <ブランチ名>
別ブランチの変更を現在のブランチに統合します。main ブランチで作業中に git merge feature/login とすると、feature/loginの変更がmainに取り込まれます。
git diff — 変更内容を確認する
git diff # ステージング前の変更を確認
git diff --staged # ステージング後の変更を確認
git diff main feature # ブランチ間の差分を確認
何が変わったかを確認するときに使います。コミット前に必ず確認する習慣をつけると、ミスが減ります。
git stash — 変更を一時退避する
git stash # 変更を一時保存
git stash pop # 退避した変更を元に戻す
git stash list # 退避リストを確認
作業中に急いで別のブランチに切り替えたいとき、コミットするほどでもない変更を一時的に退避できます。
使用シーン:
機能Aを開発中 → 急にバグ修正を頼まれた
→ git stash で変更を退避
→ バグ修正ブランチに切り替えて対応
→ 戻ってきて git stash pop で再開
git restore — 変更を取り消す
git restore <ファイル名> # ファイルの変更を取り消す
git restore --staged <ファイル名> # ステージングを取り消す
誤って編集してしまったファイルを元に戻したいときに使います。
git fetch — リモートの情報だけ取得する
git fetch
git pull はfetch+mergeをまとめてやりますが、git fetch は情報の取得だけ行い、ローカルのファイルは変更しません。「リモートの状態を確認してから取り込むか判断したい」ときに使います。
🟡 中級チートシート
| コマンド | 説明 |
|---|---|
git branch |
ブランチ一覧を表示 |
git branch <名前> |
ブランチを作成 |
git branch -d <名前> |
ブランチを削除 |
git switch <名前> |
ブランチを切り替え |
git switch -c <名前> |
ブランチを作成して切り替え |
git merge <名前> |
ブランチを統合 |
git diff |
変更内容を確認 |
git stash |
変更を一時退避 |
git stash pop |
退避した変更を復元 |
git restore <ファイル> |
ファイルの変更を取り消す |
git fetch |
リモートの情報を取得(mergeしない) |
🔴 上級:履歴を自在に操る
コミット履歴の書き換えや、細かいコントロールが必要なときのコマンドです。強力な分、使い方を誤ると取り返しのつかないことになるので注意が必要です。
git rebase — コミット履歴を整理する
git rebase main # mainブランチを基点にリベース
git rebase -i HEAD~3 # 直近3件のコミットを対話的に編集
merge が「合流」なら、rebase は「付け替え」です。コミット履歴をきれいな一直線に保てます。
⚠️ 注意: すでにリモートにpush済みのブランチに対してrebaseすると、チームメンバーと履歴が食い違います。ローカルブランチのみ に使うのが鉄則です。
git cherry-pick — 特定のコミットだけ取り込む
git cherry-pick <コミットハッシュ>
別ブランチの特定のコミットだけを、現在のブランチに取り込みます。「あのコミットの変更だけほしい」というときに便利です。
git reset — コミットを取り消す
git reset --soft HEAD~1 # コミットだけ取り消す(変更は残る)
git reset --mixed HEAD~1 # コミットとステージングを取り消す(変更は残る)
git reset --hard HEAD~1 # コミット・ステージング・変更すべて取り消す
⚠️
--hardは変更が完全に消えます。push済みのコミットには使わないでください。
git revert — コミットを安全に打ち消す
git revert <コミットハッシュ>
指定したコミットの変更を打ち消す新しいコミットを作ります。reset と違い履歴を書き換えないので、push済みのコミットを取り消したいときはこちらを使います。
git bisect — バグの原因コミットを探す
git bisect start
git bisect bad # 現在はバグがある
git bisect good <ハッシュ> # このコミットはバグがなかった
「いつからバグが発生したか」を二分探索で特定できます。大量のコミットがある場合に非常に便利です。
git reflog — すべての操作履歴を見る
git reflog
git log では見えない、resetやrebaseなどの操作履歴も含めて確認できます。「やばい、消してしまった!」というときの最終手段です。
git tag — バージョンにタグをつける
git tag v1.0.0 # タグを作成
git tag -a v1.0.0 -m "リリース説明" # 注釈付きタグを作成
git push origin v1.0.0 # タグをリモートに反映
リリースのバージョンなど、重要なコミットに名前をつけておけます。
🔴 上級チートシート
| コマンド | 説明 |
|---|---|
git rebase main |
mainを基点にリベース |
git rebase -i HEAD~N |
直近N件を対話的に編集 |
git cherry-pick <ハッシュ> |
特定のコミットだけ取り込む |
git reset --soft HEAD~1 |
コミットだけ取り消す |
git reset --hard HEAD~1 |
変更ごとすべて取り消す(危険) |
git revert <ハッシュ> |
コミットを安全に打ち消す |
git bisect |
バグの原因コミットを二分探索 |
git reflog |
すべての操作履歴を確認 |
git tag <タグ名> |
タグを作成 |
📋 全コマンドまとめチートシート
🟢 初級
| コマンド | 説明 |
|---|---|
git init |
リポジトリを初期化 |
git clone <URL> |
リモートリポジトリをコピー |
git status |
現在の状態を確認 |
git add <ファイル> |
ファイルをステージング |
git add . |
すべての変更をステージング |
git commit -m "メッセージ" |
変更を記録 |
git log --oneline |
コミット履歴を確認 |
git push origin main |
リモートに反映 |
git pull |
リモートの変更を取得 |
🟡 中級
| コマンド | 説明 |
|---|---|
git branch |
ブランチ一覧を表示 |
git branch <名前> |
ブランチを作成 |
git switch <名前> |
ブランチを切り替え |
git switch -c <名前> |
ブランチを作成して切り替え |
git merge <名前> |
ブランチを統合 |
git diff |
変更内容を確認 |
git stash / git stash pop
|
変更の一時退避・復元 |
git restore <ファイル> |
ファイルの変更を取り消す |
git fetch |
リモートの情報を取得(mergeしない) |
🔴 上級
| コマンド | 説明 |
|---|---|
git rebase |
コミット履歴を整理 |
git cherry-pick <ハッシュ> |
特定コミットだけ取り込む |
git reset |
コミットを取り消す |
git revert <ハッシュ> |
コミットを安全に打ち消す |
git bisect |
バグの原因を二分探索 |
git reflog |
全操作履歴を確認 |
git tag |
バージョンタグを作成 |
まとめ
Gitのコマンドは多いですが、最初は初級の9つだけ 覚えれば十分です。チーム開発を始めたら中級を、より高度な操作が必要になったら上級を少しずつ習得していきましょう。
💡 コツ: 覚えようとするより、実際のプロジェクトで使いながら身につけるのが一番の近道です!
この記事が役に立ったら、いいね・シェアをお願いします!