Git コマンドチートシート
日常的に使う Git コマンドを素早く参照:init、clone、branch、merge、rebase、reset、stash、リモート操作、履歴の閲覧、よく使うオプションと実用例をまとめました。
31 コマンド
はじめに
git init現在のディレクトリに新しい Git リポジトリを作成します。
git init my-projectgit clone <url>リモート リポジトリを履歴ごとローカルにコピーします。
--depth 1 (シャロー クローン、最新コミットのみ); -b <branch> 指定ブランチのみ
git clone -b main --depth 1 https://github.com/user/repo.gitgit configユーザ名・メールなどの設定を行います。--global で全リポジトリに適用されます。
git config --global user.name "Your Name" && git config --global user.email "[email protected]"日常の操作
git status作業ツリーの状態(変更・ステージ・未追跡)を表示します。
-s 短縮形式; -b ブランチ情報も表示
git status -sbgit add <file>次のコミットに含める変更をステージします。
-A すべての変更; -p 対話的にハンクを選択; -u 追跡済みファイルのみ
git add -p src/index.tsgit commitステージされた変更をコミット メッセージと共に記録します。
-m メッセージを直接指定; -a 追跡ファイルをステージしてコミット; --amend 直前のコミットを書き換え
git commit -am "fix: 空入力を処理"git diff作業ツリー、ステージ、コミット間の行レベルの差分を表示します。
--staged 直前のコミットとの差分; <branch> ブランチとの差分; --stat 概要のみ
git diff --staged --statgit restore <file>コミットしていない作業ツリーの変更を取り消します(--staged でステージ取り消し)。
git restore --staged src/index.tsブランチ
git branchブランチの一覧・作成・削除を行います。
-d 削除; -D 強制削除; -m リネーム; -a リモートブランチも表示
git branch -m old-name new-namegit switch <branch>別のブランチに切替。-c を付けると必要に応じて作成(checkout のモダン版)。
git switch -c feature/logingit merge <branch>別のブランチを現在のブランチにマージします。
--no-ff 常にマージ コミットを作成; --abort 進行中のマージを取り消す
git merge --no-ff feature/logingit rebase <branch>現在のブランチのコミットを別ブランチ先端に再適用し、線形履歴を作ります。
-i 対話的(squash/reword/reorder); --abort 中断; --continue 解決後に続行
git rebase -i HEAD~3リモート
git remote -v設定済みのリモート リポジトリと URL を一覧表示します。
git remote add origin https://github.com/user/repo.gitgit fetchリモートからオブジェクトと参照を取得するだけで、マージは行いません。
--prune 古いリモート追跡ブランチを削除; --all すべてのリモートから取得
git fetch --prune origingit pullリモートから取得し、現在のブランチへマージ(または rebase)します。
--rebase merge の代わりに rebase; --ff-only fast-forward のみ
git pull --rebase origin maingit pushローカル コミットをリモート リポジトリへアップロードします。
-u 上流追跡を設定; --force-with-lease 安全な強制プッシュ; --tags タグも送信
git push -u origin feature/login取り消し・修正
git resetHEAD を他のコミットへ移動します。必要に応じてステージ/作業ツリーも更新します。
--soft 変更をステージに残す; --mixed(既定) 変更は作業ツリーに; --hard すべて破棄
git reset --hard HEAD~1git revert <commit>指定したコミットを打ち消す新しいコミットを作ります。共有履歴に対して安全です。
git revert HEADgit commit --amend最新のコミットを書き換えます:メッセージ修正や漏れ変更の追加に。
--no-edit メッセージはそのまま
git commit --amend --no-editgit clean作業ツリーから未追跡ファイルを削除します。
-n ドライラン; -f 強制; -d ディレクトリも対象; -x 無視ファイルも対象
git clean -ndx履歴・参照
git logコミット履歴を表示します。
--oneline 1コミット1行; --graph ブランチ図; -p diff を表示; -n 表示数を制限
git log --oneline --graph -15git show <commit>コミットのメッセージと diff を表示。タグやファイルにも使えます(git show HEAD:file)。
git show HEAD~2 --statgit blame <file>ファイルの各行について、最終変更者とコミットを表示します。
-L n,m 指定行範囲のみ
git blame -L 10,20 src/index.tsgit reflogHEAD の移動履歴を表示します。誤った reset/rebase の後に失ったコミットを復旧できます。
git reflog -20Stash
git stash未コミットの変更を一時退避して、作業ツリーをきれいな状態に戻します。
-u 未追跡も含める; push -m メッセージ; list すべての stash を表示
git stash push -u -m "wip: ログイン フォーム"git stash pop最新の stash を再適用し、stash リストから削除します。
apply stash 項目を残して再適用
git stash apply stash@{1}タグ・リリース
git tagリリース ポイントを表すタグを操作します。
-a 注釈付きタグ; -m メッセージ; -d 削除
git tag -a v1.2.0 -m "Release 1.2.0"git describe --tags現在のコミットから到達できる最新のタグと距離を表示します。
git describe --tags --always上級
git cherry-pick <commit>指定したコミットの変更を現在のブランチへ適用します。
-n 適用のみ(コミットしない); -x 元コミット ハッシュをメッセージに記録
git cherry-pick -x a1b2c3dgit bisect二分探索でバグ混入コミットを特定します。
start / bad / good / run <cmd> / reset
git bisect start && git bisect bad && git bisect good v1.0.0git worktree add <path> <branch>同じリポジトリを共有しつつ、別ディレクトリに別ブランチをチェックアウトします。
git worktree add ../hotfix hotfix/urgent-bugチートシート バージョン 1.0.0
Git 2.30+ に対応