はじめに
「あのgitコマンド、なんだっけ...」
開発中にgitコマンドを忘れて検索すること、よくありますよね。
この記事は ブックマークして困ったときに見返す ことを想定した、Gitコマンドのチートシートです。基本から実務でよく使うものまで網羅しています。
初期設定
最初に一度だけ設定するコマンドです。
# ユーザー名の設定
git config --global user.name "あなたの名前"
# メールアドレスの設定
git config --global user.email "your@email.com"
# デフォルトブランチ名をmainに設定
git config --global init.defaultBranch main
# 設定の確認
git config --list
# エディタの設定(VSCodeの場合)
git config --global core.editor "code --wait"
# 改行コードの自動変換(Mac/Linux)
git config --global core.autocrlf input
# 改行コードの自動変換(Windows)
git config --global core.autocrlf true
リポジトリの作成・取得
# 新規リポジトリを作成
git init
# リモートリポジトリをクローン
git clone <URL>
# ディレクトリ名を指定してクローン
git clone <URL> my-project
# 特定のブランチだけクローン
git clone -b <ブランチ名> <URL>
# 浅いクローン(直近の履歴だけ取得。高速)
git clone --depth 1 <URL>
状態確認
# 現在の状態を確認(最も使うコマンド)
git status
# 短縮表示
git status -s
# 変更差分を確認(ステージ前)
git diff
# ステージ済みの変更差分を確認
git diff --staged
# 特定ファイルの差分
git diff <ファイル名>
# ブランチ間の差分
git diff <ブランチA>..<ブランチB>
# 変更されたファイル名だけ表示
git diff --name-only
ステージング(add)
# 特定ファイルをステージ
git add <ファイル名>
# 複数ファイルをステージ
git add file1.txt file2.txt
# ディレクトリごとステージ
git add src/
# 全ての変更をステージ
git add .
# 変更・削除されたファイルをステージ(新規ファイルは除く)
git add -u
# ステージを取り消す(ファイルの変更は残る)
git restore --staged <ファイル名>
# 全てのステージを取り消す
git restore --staged .
コミット
# コミット(メッセージ付き)
git commit -m "コミットメッセージ"
# add + commitを同時に(追跡済みファイルのみ)
git commit -am "コミットメッセージ"
# 複数行のコミットメッセージ
git commit -m "1行目のタイトル" -m "2行目の詳細"
# 直前のコミットメッセージを修正
git commit --amend -m "新しいメッセージ"
# 直前のコミットにファイルを追加(メッセージ変更なし)
git add <追加ファイル>
git commit --amend --no-edit
# 空コミット(CIトリガー用など)
git commit --allow-empty -m "trigger CI"
ログの確認
# コミット履歴を表示
git log
# 1行で表示
git log --oneline
# 直近5件だけ表示
git log -5
# グラフ表示(ブランチの分岐が見える)
git log --oneline --graph --all
# 特定ファイルの変更履歴
git log <ファイル名>
# 変更内容も表示
git log -p
# 各コミットの変更ファイル一覧
git log --stat
# 特定の文字列を含むコミットを検索
git log --grep="バグ修正"
# 特定の著者のコミットだけ表示
git log --author="名前"
# 日付で絞り込み
git log --after="2026-01-01" --before="2026-02-01"
# 特定ファイルの各行の最終変更者を表示
git blame <ファイル名>
ブランチ操作
# ブランチ一覧(ローカル)
git branch
# ブランチ一覧(リモート含む)
git branch -a
# ブランチ一覧(最終コミット情報付き)
git branch -v
# 新しいブランチを作成
git branch <ブランチ名>
# ブランチを作成して切り替え
git checkout -b <ブランチ名>
# ブランチを作成して切り替え(新しい書き方)
git switch -c <ブランチ名>
# ブランチの切り替え
git checkout <ブランチ名>
git switch <ブランチ名>
# ブランチ名の変更
git branch -m <旧名> <新名>
# 現在のブランチ名を変更
git branch -m <新名>
# ブランチの削除(マージ済みのみ)
git branch -d <ブランチ名>
# ブランチの強制削除(マージ前でも削除)
git branch -D <ブランチ名>
# マージ済みブランチの一覧
git branch --merged
# 未マージブランチの一覧
git branch --no-merged
# リモートブランチをローカルにチェックアウト
git checkout -b <ローカル名> origin/<リモートブランチ名>
マージ
# 指定ブランチを現在のブランチにマージ
git merge <ブランチ名>
# マージコミットを必ず作る(--no-ff)
git merge --no-ff <ブランチ名>
# マージを中止
git merge --abort
# スカッシュマージ(複数コミットを1つにまとめてマージ)
git merge --squash <ブランチ名>
git commit -m "マージメッセージ"
リベース
# 現在のブランチをmainにリベース
git rebase main
# リベースを中止
git rebase --abort
# リベース中のコンフリクト解消後に続行
git rebase --continue
# 直近3つのコミットを整理(squash、reword等)
git rebase -i HEAD~3
注意: プッシュ済みのコミットをリベースすると、他のメンバーに影響が出ます。プッシュ前のコミットに対してのみ使いましょう。
リモート操作
# リモートリポジトリの確認
git remote -v
# リモートを追加
git remote add origin <URL>
# リモートのURLを変更
git remote set-url origin <新URL>
# リモートを削除
git remote remove <名前>
# リモートの最新情報を取得(マージはしない)
git fetch
# 全てのリモートからfetch
git fetch --all
# リモートで削除されたブランチをローカルからも削除
git fetch --prune
# リモートの変更を取得してマージ(fetch + merge)
git pull
# リベースでpull(マージコミットを作らない)
git pull --rebase
# ローカルの変更をリモートにプッシュ
git push
# 初回プッシュ(上流ブランチの設定)
git push -u origin <ブランチ名>
# リモートブランチの削除
git push origin --delete <ブランチ名>
# タグをプッシュ
git push origin <タグ名>
# 全てのタグをプッシュ
git push origin --tags
変更の取り消し・復元
# ファイルの変更を取り消す(最後のコミット状態に戻す)
git restore <ファイル名>
# 全ファイルの変更を取り消す
git restore .
# 特定コミットの状態にファイルを復元
git restore --source <コミットID> <ファイル名>
# ステージを取り消す(変更は残る)
git restore --staged <ファイル名>
# 直前のコミットを取り消す(変更はステージに残る)
git reset --soft HEAD~1
# 直前のコミットを取り消す(変更はワーキングツリーに残る)
git reset --mixed HEAD~1
git reset HEAD~1 # --mixedがデフォルト
# 直前のコミットを完全に取り消す(変更も消える。注意!)
git reset --hard HEAD~1
# 特定のコミットを打ち消す新しいコミットを作成(安全)
git revert <コミットID>
# マージコミットをrevert
git revert -m 1 <マージコミットID>
reset の違い早見表
| オプション | コミット | ステージ | ワーキングツリー |
|---|---|---|---|
--soft |
取り消し | 残る | 残る |
--mixed |
取り消し | 取り消し | 残る |
--hard |
取り消し | 取り消し | 取り消し |
revert vs reset: revertは新しいコミットで打ち消す(安全)。resetは履歴を書き換える(プッシュ前のみ推奨)。
スタッシュ(一時退避)
# 変更を一時退避
git stash
# メッセージ付きで退避
git stash save "作業途中のログイン機能"
# 未追跡ファイルも含めて退避
git stash -u
# スタッシュ一覧
git stash list
# 最新のスタッシュを復元(スタッシュは残る)
git stash apply
# 最新のスタッシュを復元して削除
git stash pop
# 特定のスタッシュを復元
git stash apply stash@{2}
# スタッシュの内容を確認
git stash show -p stash@{0}
# 特定のスタッシュを削除
git stash drop stash@{0}
# 全てのスタッシュを削除
git stash clear
タグ
# タグ一覧
git tag
# 軽量タグの作成
git tag v1.0.0
# 注釈付きタグの作成
git tag -a v1.0.0 -m "バージョン1.0.0リリース"
# 特定コミットにタグをつける
git tag -a v1.0.0 <コミットID> -m "メッセージ"
# タグの詳細を確認
git show v1.0.0
# タグの削除
git tag -d v1.0.0
# リモートのタグを削除
git push origin --delete v1.0.0
チェリーピック
# 特定のコミットだけを現在のブランチに取り込む
git cherry-pick <コミットID>
# 複数のコミットを取り込む
git cherry-pick <コミットID1> <コミットID2>
# コミットせずに変更だけ取り込む
git cherry-pick --no-commit <コミットID>
# チェリーピックを中止
git cherry-pick --abort
.gitignore
よく使うパターン
# 特定のファイル
.env
credentials.json
# 特定の拡張子
*.log
*.tmp
*.swp
# ディレクトリ
node_modules/
dist/
build/
.idea/
.vscode/
# OS生成ファイル
.DS_Store
Thumbs.db
# 例外(無視しないファイル)
!.gitkeep
!important.log
.gitignoreの操作
# すでに追跡されているファイルを追跡対象から外す
git rm --cached <ファイル名>
# ディレクトリを再帰的に追跡対象から外す
git rm -r --cached <ディレクトリ名>
# .gitignoreが効いているか確認
git check-ignore -v <ファイル名>
コンフリクトの解消
コンフリクトが起きたら
# 1. コンフリクトファイルを確認
git status
# 2. ファイルを開いてコンフリクトを手動で解消
# <<<<<<< HEAD
# 自分の変更
# =======
# 相手の変更
# >>>>>>> branch-name
# 3. 解消したファイルをステージ
git add <ファイル名>
# 4. マージを完了
git commit
# コンフリクトマーカーが残っていないか確認
grep -r "<<<<<<" .
便利なエイリアス設定
よく使うコマンドを短縮登録できます。
# エイリアスの設定
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.cm "commit -m"
git config --global alias.lg "log --oneline --graph --all"
git config --global alias.df "diff --name-only"
git config --global alias.last "log -1 HEAD"
git config --global alias.unstage "restore --staged"
使い方
git st # git status
git co main # git checkout main
git br # git branch
git cm "修正" # git commit -m "修正"
git lg # git log --oneline --graph --all
git last # 直前のコミットを表示
git unstage . # 全ステージ取り消し
実務でよく使うコマンド集
朝の作業開始
git switch main
git pull
git switch <作業ブランチ>
git merge main
機能開発の流れ
git switch -c feature/add-login # ブランチ作成
# ... コーディング ...
git add . # ステージ
git commit -m "feat: ログイン機能を追加" # コミット
git push -u origin feature/add-login # プッシュ
# → GitHubでPR作成
作業の一時中断
git stash save "ログイン機能の途中"
git switch main
# ... 別の作業 ...
git switch feature/add-login
git stash pop
やらかしたとき
# 直前のコミットをなかったことにしたい(変更は残す)
git reset --soft HEAD~1
# ファイルの変更を全部なかったことにしたい
git restore .
# プッシュ済みのコミットを取り消したい(安全に)
git revert <コミットID>
git push
# 間違えてmainにコミットしてしまった
git branch <新ブランチ名> # 今のコミットでブランチ作成
git reset --hard HEAD~1 # mainを1つ前に戻す
git switch <新ブランチ名> # 新ブランチに移動
履歴の調査
# このバグ、いつ入った?
git log --oneline -- <バグのあるファイル>
# この行、誰が書いた?
git blame <ファイル名>
# この文字列、いつ追加された?
git log -p -S "検索文字列"
# 2つのブランチの差分ファイル一覧
git diff main..feature/xxx --name-only
まとめ:最低限覚えるコマンド TOP10
| # | コマンド | 用途 |
|---|---|---|
| 1 | git status |
現在の状態確認 |
| 2 | git add . |
変更をステージ |
| 3 | git commit -m "msg" |
コミット |
| 4 | git push |
リモートにプッシュ |
| 5 | git pull |
リモートから取得 |
| 6 | git switch -c <name> |
ブランチ作成&切替 |
| 7 | git switch <name> |
ブランチ切替 |
| 8 | git log --oneline |
履歴確認 |
| 9 | git diff |
差分確認 |
| 10 |
git stash / git stash pop
|
一時退避&復元 |
まずはこの10個を使いこなせれば、日常の開発では困りません。
この記事をブックマークして、必要なときに見返してください!
著者: @kotaro_ai_lab
AI駆動開発やテック情報を毎日発信しています。フォローお気軽にどうぞ!