ウェブエンジニア問題集

Gitコマンドチートシート — よく使うコマンドを目的別に逆引き

ここまでの章で、Gitの考え方とコマンドを一通り学びました。この章は、それらを**「やりたいこと」から逆引き**できるチートシートです。コマンドを忘れたとき・手早く確認したいときのリファレンスとして使ってください。各セクションの末尾に、詳しい解説のある章へのリンクを置いています。

学習者学習者

コマンドの意味は分かったけど、いざという時に「あれ、どう打つんだっけ?」ってなる…。サッと見られる一覧が欲しい!

目的からコマンドを逆引きするイメージ

基本フロー(add → commit → push)

毎日いちばん使う、変更を記録して共有するまでの流れです。

やりたいことコマンド
変更をステージに上げるgit add ファイル名
すべての変更をステージに上げるgit add .
削除・リネームも含めて全部上げるgit add -A
変更を一部分ずつ選んで上げるgit add -p
ステージした内容を確認するgit status / git diff --staged
コミットするgit commit -m "メッセージ"
add と commit をまとめて(追跡中ファイルのみ)git commit -am "メッセージ"
直前のコミットにメッセージ込みで修正git commit --amend
直前のコミットにメッセージを変えず追加git commit --amend --no-edit
空コミットを作る(CI起動用など)git commit --allow-empty -m "メッセージ"
リモートへ送るgit push
初回プッシュ(上流ブランチを設定)git push -u origin ブランチ名
特定のブランチへ送るgit push origin ブランチ名
履歴を書き換えた後に安全に送るgit push --force-with-lease

詳しくは第3章 add・commit・pushの基本フローへ。

状態の確認(status・log・diff)

「今どうなっているか」「過去に何があったか」を確認するコマンド。操作の前後に挟むとミスを防げます。

やりたいことコマンド
変更状況を見るgit status
変更状況を簡潔に見るgit status -s
履歴を見るgit log
履歴を1行ずつ簡潔に見るgit log --oneline
履歴を図(グラフ)で見るgit log --oneline --graph --all
直近 n 件だけ見るgit log -n 5
特定ファイルの履歴を見るgit log ファイル名
特定の作者の履歴を見るgit log --author="名前"
変更内容(未ステージ)を見るgit diff
ステージ済みの変更を見るgit diff --staged
2つのブランチの差分を見るgit diff main..feature
あるコミットの内容を見るgit show コミットID
行ごとに最後に変更した人を見るgit blame ファイル名
先生先生

迷ったらまず git status。今ステージに何が乗っていて、どのブランチにいるかを教えてくれる“現在地マップ”だよ。

ブランチ操作

作業を枝分かれさせ、行き来し、統合するためのコマンドです。

やりたいことコマンド
ブランチ一覧を見るgit branch
リモート追跡も含めて一覧を見るgit branch -a
今いるブランチ名を確認するgit branch --show-current
ブランチを作るgit branch ブランチ名
ブランチを切り替えるgit switch ブランチ名
作って切り替えを同時にgit switch -c ブランチ名
直前にいたブランチに戻るgit switch -
ブランチ名を変更するgit branch -m 新しい名前
ブランチを削除する(マージ済み)git branch -d ブランチ名
ブランチを強制削除する(未マージ)git branch -D ブランチ名
マージ済みのブランチ一覧を見るgit branch --merged
ブランチを統合するgit merge ブランチ名
ブランチの根元を付け替えるgit rebase ブランチ名

詳しくは第4章 ブランチを理解する第5章 mergeとrebaseの違いへ。

変更の取り消し

Gitで最も緊張する操作。「何を」「どこまで」戻すかで使うコマンドが変わります。

やりたいことコマンド
作業中の変更を捨てる(ファイル単位)git restore ファイル名
作業中の変更を全部捨てるgit restore .
ステージから下ろす(変更は残す)git restore --staged ファイル名
特定コミットの内容でファイルを復元git restore --source=コミットID ファイル名
直前のコミットを取り消す(変更は残す)git reset --soft HEAD^
直近 3 件のコミットを取り消す(変更は残す)git reset --soft HEAD~3
直前のコミットを取り消す(変更も捨てる)git reset --hard HEAD^
コミットを打ち消す新コミットを作るgit revert コミットID
マージを中止して元に戻すgit merge --abort
リベースを中止して元に戻すgit rebase --abort
未追跡ファイルを削除するgit clean -fd

詳しくは第7章 取り消し操作の完全ガイドへ。

リモートとの同期(fetch・pull・push)

チームの変更を取り込み、自分の変更を送るコマンドです。

やりたいことコマンド
リモートを登録するgit remote add origin URL
登録済みリモートを確認するgit remote -v
リモートのURLを変更するgit remote set-url origin URL
リモートの最新を取得(マージしない)git fetch
リモートで消えたブランチを掃除するgit fetch --prune
リモートの最新を取得してマージgit pull
リベース型で取り込むgit pull --rebase
自分の変更を送るgit push
リモートのブランチ一覧を見るgit branch -r
リモートのブランチを取得して切り替えるgit switch ブランチ名(自動追跡)
リモートのブランチを削除するgit push origin --delete ブランチ名

詳しくは第8章 リモートとの同期へ。

stash(作業の一時退避)

コミットするほどではない作業中の変更を、いったん棚上げするコマンドです。

やりたいことコマンド
変更を退避するgit stash
メッセージを付けて退避するgit stash push -m "メッセージ"
未追跡ファイルも含めて退避するgit stash -u
退避の一覧を見るgit stash list
退避の中身を確認するgit stash show -p
最後の退避を戻す(退避は消す)git stash pop
退避を戻す(退避は残す)git stash apply
特定の退避を戻すgit stash apply stash@{1}
退避を1つ破棄するgit stash drop
退避をすべて破棄するgit stash clear

詳しくは第9章 stashで作業を一時退避するへ。

タグ(リリースに印をつける)

特定のコミットに「v1.0.0」などの目印を付けるコマンドです。リリース管理でよく使います。

やりたいことコマンド
タグの一覧を見るgit tag
軽量タグを付けるgit tag v1.0.0
注釈付きタグを付けるgit tag -a v1.0.0 -m "リリース"
特定コミットにタグを付けるgit tag v1.0.0 コミットID
タグをリモートへ送るgit push origin v1.0.0
タグをまとめて送るgit push origin --tags
タグを削除するgit tag -d v1.0.0

ファイルの追跡管理(rm・mv・.gitignore)

ファイルの削除・移動や「追跡から外す」操作です。

やりたいことコマンド
ファイルを削除して記録するgit rm ファイル名
追跡から外す(ファイルは残す)git rm --cached ファイル名
ファイルを移動・リネームするgit mv 旧名 新名
あとから .gitignore を効かせ直すgit rm -r --cached . && git add .
無視されているか確認するgit check-ignore -v ファイル名

履歴の調整(cherry-pick・reflog)

コミットをつまみ食いしたり、消したはずの作業を救出したりするコマンドです。

やりたいことコマンド
特定のコミットだけ取り込むgit cherry-pick コミットID
HEADが動いた全履歴を見るgit reflog
reflog で見つけた状態へ戻すgit reset --hard コミットID
直近のコミットを対話的に編集するgit rebase -i HEAD~3
過去の状態を見るだけ(切替なし)git switch --detach コミットID

初期設定(config)

最初に一度だけ、または環境ごとに行う設定です。

やりたいことコマンド
名前を設定git config --global user.name "名前"
メールを設定git config --global user.email "メール"
デフォルトブランチ名を main にgit config --global init.defaultBranch main
既定のエディタを設定git config --global core.editor "code --wait"
エイリアスを登録するgit config --global alias.co checkout
設定を一覧で確認git config --list

詳しくは第2章 Gitの初期設定へ。

困ったとき逆引き早見表

「この状況、どうすれば?」をまとめました。

こんなときこうする
コミットメッセージを打ち間違えたgit commit --amend(push前なら)
別のブランチで作業すべきだったgit stash → ブランチ切替 → git stash pop
直前のコミットをなかったことに(変更は残す)git reset --soft HEAD^
公開済みのコミットを取り消したいgit revert コミットID
.env など機密ファイルをコミットしたgit rm --cached .env.gitignore に追記
間違えてリセットする前に戻りたいgit reflog で探して git reset --hard コミットID
マージでコンフリクトした該当ファイルを修正 → git addgit commit第6章
別ブランチの1コミットだけ欲しいgit cherry-pick コミットID
pull したら勝手にマージコミットができるgit pull --rebase を使う
ローカルとリモートのブランチがずれたgit fetch --prune で整理する
学習者学習者

git reflog 初めて見た…!「消したはずの作業が消えてない」かもしれないのは心強い。

まとめ

  • このページは「やりたいこと」からコマンドを引く逆引きリファレンス
  • 迷ったらまず git status で現在地を確認する
  • 取り消し系は影響範囲が大きい。公開済みの履歴は revertreset --hard / clean -fd は実行前に確認
  • 「やってしまった」ときは git reflog が命綱

各コマンドの「なぜそう動くのか」は、本書の該当章で詳しく解説しています。手が止まったらこのチートシートに戻り、深く知りたくなったら各章へ——という形で使い倒してください。チーム開発での実践は第10章 GitHubでのチーム開発が参考になります。