Gitコマンドチートシート

初期設定・ブランチ・リモート・取り消し・スタッシュなど、よく使うGitコマンドを検索・カテゴリ絞り込みできる早見表。

入力データはブラウザ内で処理されます
データはサーバーへ送信されません

変換ツール

初期設定

git init

現在のディレクトリを新しいGitリポジトリとして初期化

git clone <url>

リモートリポジトリをローカルに複製

例:git clone https://github.com/user/repo.git
git config --global user.name "<name>"

コミットに使うユーザー名をグローバル設定

git config --global user.email "<email>"

コミットに使うメールアドレスをグローバル設定

基本操作

git status

作業ディレクトリとステージの状態を表示

git add <file>

変更をステージングエリアに追加

例:git add .
git commit -m "<message>"

ステージした変更をコミット

git commit --amend

直前のコミットをメッセージ・内容ごと修正

git diff

作業ディレクトリとステージの差分を表示

git diff --staged

ステージとHEADの差分を表示

git rm <file>

ファイルを削除し、その変更をステージング

git mv <old> <new>

ファイル名を変更し、その変更をステージング

ブランチ

git branch

ローカルブランチの一覧を表示

git branch <name>

新しいブランチを作成(切り替えなし)

git switch <branch>

指定したブランチに切り替え

git switch -c <branch>

新しいブランチを作成して切り替え

git branch -d <branch>

マージ済みのブランチを削除

git branch -D <branch>

未マージでもブランチを強制削除

git merge <branch>

指定したブランチを現在のブランチにマージ

git rebase <branch>

現在のブランチを指定したブランチの上にリベース

リモート

git remote -v

登録されているリモートリポジトリの一覧を表示

git remote add <name> <url>

新しいリモートリポジトリを登録

例:git remote add origin <url>
git fetch <remote>

リモートの変更を取得するがマージはしない

git pull

リモートの変更を取得して現在のブランチにマージ

git pull --rebase

リモートの変更を取得し、マージの代わりにリベース

git push

ローカルのコミットをリモートに反映

git push -u origin <branch>

初回push時に上流ブランチを設定しつつpush

git push --force-with-lease

リモートの新しい変更を上書きしないよう安全に強制push

取り消し・リセット

git restore <file>

作業ディレクトリの変更を破棄してHEADの内容に戻す

git restore --staged <file>

ステージした変更をアンステージ(addの取り消し)

git reset --soft HEAD~1

直前のコミットを取り消すが変更内容はステージに残す

git reset --mixed HEAD~1

直前のコミットを取り消し、変更内容は作業ディレクトリに残す(デフォルト)

git reset --hard HEAD~1

直前のコミットと変更内容を完全に破棄

git revert <commit>

指定したコミットの変更を打ち消す新しいコミットを作成

git clean -fd

未追跡のファイル・ディレクトリを削除

スタッシュ

git stash

作業中の変更を一時退避

git stash list

退避した変更の一覧を表示

git stash pop

最新の退避を適用してスタッシュから削除

git stash apply

最新の退避を適用(スタッシュには残す)

git stash drop

最新の退避を破棄

履歴・調査

git log

コミット履歴を表示

git log --oneline --graph

コミット履歴を1行・グラフ表示

git show <commit>

指定したコミットの詳細と変更内容を表示

git blame <file>

ファイルの各行を最後に変更したコミットを表示

git bisect start

二分探索でバグ混入コミットを特定する作業を開始

タグ

git tag

タグの一覧を表示

git tag <name>

現在のコミットに軽量タグを作成

git tag -a <name> -m "<message>"

注釈付きタグを作成

git push origin <tag>

指定したタグをリモートにpush

Gitコマンドチートシートとは?

日常のGit操作に必要なコマンドを、初期設定・基本操作・ブランチ・リモート・取り消し/リセット・スタッシュ・履歴調査・タグの8カテゴリに整理した早見表です。検索とカテゴリ絞り込みで目的のコマンドにすぐたどり着けます。

収録カテゴリ

  • 初期設定(git init / clone / config)
  • 基本操作(add / commit / diff / rm / mv)
  • ブランチ(branch / switch / merge / rebase)
  • リモート(remote / fetch / pull / push)
  • 取り消し・リセット(restore / reset / revert / clean)
  • スタッシュ(stash / pop / apply / drop)
  • 履歴・調査(log / show / blame / bisect)
  • タグ(tag / annotated tag)

こんな場面で便利です

  • 普段あまり使わないコマンドのオプションを思い出したいとき
  • チームメンバーへのオンボーディング資料として
  • resetの3つのモードなど、間違えると危険な操作の違いを確認したいとき

使い方

  1. 検索ボックスにコマンド名やキーワードを入力すると、該当するコマンドだけが絞り込まれます。
  2. カテゴリボタンで「ブランチ」「リモート」など特定のカテゴリのみを表示できます。
  3. 各コマンドカードをクリックすると、コマンド文字列がそのままクリップボードにコピーされます。

よくある質問

git resetの --soft / --mixed / --hard の違いは何ですか?

いずれも直前のコミットを取り消しますが、影響範囲が異なります。--softはステージング内容を保持し、--mixed(デフォルト)はステージングを解除して作業ディレクトリに変更を残し、--hardは変更内容ごと完全に破棄します。

git mergeとgit rebaseの違いは何ですか?

git mergeは2つのブランチの履歴を1つのマージコミットとして統合し、分岐の履歴がそのまま残ります。git rebaseは現在のブランチのコミットを別のブランチの先端に付け替え、直線的な履歴を作ります。共有ブランチでのrebaseは他の開発者の履歴を壊す可能性があるため注意が必要です。

git pushで force-with-leaseが推奨されるのはなぜですか?

通常の --force はリモートの最新の変更を無条件に上書きしてしまいますが、--force-with-lease は自分がfetchした時点からリモートに新しい変更がない場合のみpushを許可するため、他の人の作業を誤って消してしまう事故を防げます。

git stashとgit commitの使い分けは?

作業途中の変更を一時的に退避してブランチを切り替えたい場合はgit stash、意味のある単位で変更を記録し履歴に残したい場合はgit commitを使います。stashは一時的な退避場所であり、恒久的な履歴には残りません。