Gitコマンド逆引き検索
「やりたいこと」からGitコマンドを検索。危険なコマンドは色分け表示
git clonegit clone <URL> [ディレクトリ名]
git clone https://github.com/user/repo.git
リモートリポジトリをローカルに複製
git addgit add <ファイル|ディレクトリ|.>
git add .
カレントディレクトリ以下の全変更をステージ
💡 git add -p で変更を対話的に一部だけステージすることも可能
公式ドキュメントgit diff --stagedgit diff --staged [ファイル]
git diff --staged
コミット予定の変更内容を確認
💡 --cached は --staged のエイリアス
公式ドキュメント.gitignore.gitignore に除外パターンを記述
echo "node_modules/" >> .gitignore
node_modules ディレクトリを追跡対象外にする
💡 すでに追跡済みのファイルには効果がないため git rm --cached で追跡解除が必要
公式ドキュメントgit rm --cachedgit rm --cached <ファイル>
git rm --cached .env
.env をGit管理から外す(ファイル自体は残る)
💡 .gitignore に追加してもすでに追跡中のファイルには効果がないため、この操作が必要
公式ドキュメントgit commit --amendgit commit --amend -m "<新メッセージ>"
git commit --amend -m "Fix login redirect bug"
直前のコミットメッセージを書き換える
💡 プッシュ済みのコミットをamendすると履歴が変わるため、共有ブランチでは force push が必要になる
公式ドキュメントgit commit --amend --no-editgit add <ファイル> && git commit --amend --no-edit
git add forgotten.ts && git commit --amend --no-edit
メッセージを変えずに直前のコミットにファイルを追加
git commit --allow-emptygit commit --allow-empty -m "<メッセージ>"
git commit --allow-empty -m "trigger CI"
CIの再実行トリガーなど、変更なしでコミットを作成
git add -pgit add -p [ファイル]
git add -p src/app.ts
変更を対話的にhunk単位で選んでステージ
💡 1つのコミットに無関係な変更が混ざるのを防げる
公式ドキュメントgit rebase -igit rebase -i HEAD~<件数>
git rebase -i HEAD~3
直近3件のコミットをsquash・reword・並び替え
💡 プッシュ済みのコミットに対して行うと履歴が書き換わるため注意
公式ドキュメントgit switch -cgit switch -c <ブランチ名>
git switch -c feature/login
feature/login を作成して切り替え
💡 旧来は git checkout -b <ブランチ名> で同じことができる
公式ドキュメントgit switchgit switch <ブランチ名>
git switch main
main ブランチに切り替え
💡 Git 2.23以降推奨。git checkout <ブランチ名> でも同じ動作
公式ドキュメントgit branch -Dgit branch -D <ブランチ名>
git branch -D old-experiment
マージされていない変更ごとブランチを削除
💡 未マージのコミットは reflog から一定期間のみ復元可能
公式ドキュメントgit switch -tgit switch -t origin/<ブランチ名>
git switch -t origin/feature/login
リモートの feature/login をローカルに作成して追跡設定
💡 旧来は git checkout -t origin/<ブランチ名> で同じことができる
公式ドキュメントgit merge --no-ffgit merge --no-ff <ブランチ名>
git merge --no-ff feature/login
マージコミットを必ず作成して履歴を明示的に残す
git rebasegit rebase <ベースブランチ>
git rebase main
現在のブランチのコミットを main の最新の上に付け替える
💡 共有ブランチをリベースすると他の人の履歴と食い違うため、個人ブランチでの使用が基本
公式ドキュメントgit rebase --continuegit add <解消済みファイル> && git rebase --continue
git add . && git rebase --continue
コンフリクトを解消してリベースを続行
git cherry-pickgit cherry-pick <コミットハッシュ>
git cherry-pick a1b2c3d
指定コミットの変更だけを現在のブランチに適用
💡 同じ変更を複数ブランチに適用するため、コンフリクトが起きやすい
公式ドキュメントgit add + git commit競合箇所を編集 → git add <ファイル> → git commit
git add resolved.ts && git commit
コンフリクトマーカーを解消後にステージしてコミット
💡 マージコンフリクトは <<<<<<< ======= >>>>>>> のマーカーで示される
公式ドキュメントgit remote addgit remote add <名前> <URL>
git remote add origin https://github.com/user/repo.git
origin という名前でリモートを登録
git pullgit pull [リモート名] [ブランチ名]
git pull origin main
リモートの最新変更を取得して現在のブランチにマージ
💡 git pull --rebase でマージコミットの代わりにリベースする運用も一般的
公式ドキュメントgit pushgit push [リモート名] [ブランチ名]
git push origin feature/login
feature/login ブランチをリモートにプッシュ
git push -ugit push -u <リモート名> <ブランチ名>
git push -u origin feature/login
以降は git push だけで同じリモートブランチにプッシュ可能に
git push --force-with-leasegit push --force-with-lease [リモート名] [ブランチ名]
git push --force-with-lease origin feature/login
amendやrebase後の履歴をリモートに反映
💡 --force ではなく --force-with-lease を使うと、他の人が先にプッシュした変更を誤って上書きするのを防げる
公式ドキュメントgit push --deletegit push <リモート名> --delete <ブランチ名>
git push origin --delete feature/login
リモート上の feature/login を削除
git restoregit restore <ファイル>
git restore src/app.ts
コミットしていない変更を破棄して直前の状態に戻す
💡 未保存の変更は復元できないため実行前に必ず確認する
公式ドキュメントgit restore --stagedgit restore --staged <ファイル>
git restore --staged src/app.ts
ステージを解除する(変更内容自体は残る)
💡 旧来は git reset HEAD <ファイル> で同じことができる
公式ドキュメントgit reset --softgit reset --soft HEAD~<件数>
git reset --soft HEAD~1
直前のコミットを取り消し、変更内容はステージ済みのまま残す
git reset --hardgit reset --hard <コミットハッシュ>
git reset --hard HEAD~1
直前のコミットとその変更内容を完全に破棄
💡 ワーキングツリーの変更も含めて失われる。実行前に git stash や別ブランチでのバックアップを推奨
公式ドキュメントgit revertgit revert <コミットハッシュ>
git revert a1b2c3d
指定コミットの変更を打ち消す新規コミットを作成
💡 履歴を書き換えないため、プッシュ済み・共有ブランチでの取り消しに安全
公式ドキュメントgit restore --sourcegit restore --source=<コミット> <ファイル>
git restore --source=HEAD~3 src/app.ts
3コミット前の app.ts の内容だけを復元
git refloggit reflog → git branch <ブランチ名> <ハッシュ>
git reflog git branch recovered-branch a1b2c3d
reflogで削除前のコミットハッシュを特定してブランチを再作成
💡 reflogはデフォルトで90日間(gc.reflogExpire)保持される
公式ドキュメントgit clean -fdgit clean -fd
git clean -n -fd (事前確認) git clean -fd(実削除)
.gitignore対象外の未追跡ファイル・ディレクトリを削除
💡 一度削除すると復元できない。必ず -n(ドライラン)で対象を確認してから実行する
公式ドキュメントgit stashgit stash [push -m "<メモ>"]
git stash push -m "WIP: login form"
未コミットの変更をスタッシュに退避して作業ツリーをきれいにする
git stash applygit stash apply [stash@{n}]
git stash apply stash@{1}複数ブランチに同じ変更を適用したい場合に使う
💡 popと違いスタッシュ一覧に残るため、後で git stash drop での削除が必要
公式ドキュメントgit log --onelinegit log --oneline [-n 件数]
git log --oneline -n 10
直近10件のコミットをハッシュとメッセージだけで表示
git log --graphgit log --graph --all --oneline
git log --graph --all --oneline --decorate
全ブランチの分岐・マージ構造を視覚的に表示
git log --grepgit log --grep="<検索語>"
git log --grep="fix login"
メッセージに "fix login" を含むコミットを検索
git tag -agit tag -a <タグ名> -m "<メッセージ>"
git tag -a v1.0.0 -m "Initial release"
メッセージ・作成者・日時が記録される注釈付きタグを作成
💡 リリース管理には軽量タグより注釈付きタグが推奨される
公式ドキュメントgit tag -dgit tag -d <タグ名> && git push <リモート名> --delete <タグ名>
git tag -d v1.0.0 git push origin --delete v1.0.0
ローカルとリモート両方からタグを削除
git configgit config --global user.name "<名前>" git config --global user.email "<メール>"
git config --global user.name "Taro Yamada" git config --global user.email "[email protected]"
全リポジトリ共通のユーザー情報を設定
💡 --global を外すとそのリポジトリだけの設定になる
公式ドキュメントgit config --global aliasgit config --global alias.<エイリアス名> "<コマンド>"
git config --global alias.co checkout
git co で git checkout を実行できるようにする
git submodule addgit submodule add <URL> [パス]
git submodule add https://github.com/user/lib.git libs/lib
外部リポジトリをサブディレクトリとして取り込む
💡 clone時は --recurse-submodules を付けないとサブモジュールの中身が空になる
公式ドキュメントgit config --listgit config --list [--global|--local]
git config --list --global
グローバル設定の一覧を表示
よくある質問
「危険」ラベルが付いているコマンドは使ってはいけないのですか?
いいえ、使用してよいですが実行前に影響範囲を理解しておくべき、という意味のラベルです。特に git reset --hard・git push --force・git clean -fd・git branch -D は元に戻せない、または他の人の作業に影響する可能性があるため、実行前に一度立ち止まって確認することをおすすめします。
git resetとgit revertの違いは何ですか?
git reset は履歴そのものを書き換えて過去の状態に戻す操作です(共有ブランチで使うと危険)。git revert は過去のコミットを打ち消す「新しいコミット」を追加するため、履歴を書き換えず、プッシュ済み・共有ブランチでも安全に取り消しができます。
git mergeとgit rebaseはどちらを使うべきですか?
個人のfeatureブランチをきれいに整理してから取り込みたい場合は rebase、複数人が同じブランチにコミットしている場合や履歴の改変を避けたい場合は merge が基本です。すでにリモートにプッシュ済み・他の人と共有しているブランチを rebase すると、相手のローカル履歴と食い違ってしまうため避けましょう。
git pushで「rejected」エラーが出た場合はどうすればいいですか?
リモートに自分のローカルが持っていないコミットが存在する状態です。まず git pull(または git fetch してから git rebase)でリモートの変更を取り込んでから、再度 push してください。
git stashとコミットの違いは何ですか?
git stash は作業途中の変更を「一時的に退避」する仕組みで、コミット履歴には残りません。急に別ブランチへ切り替える必要が出た、といった一時退避の用途に向いています。
--force と --force-with-lease の違いは?
--force は問答無用でリモートの内容を上書きします。--force-with-lease は自分が最後に取得した状態から誰も新しくプッシュしていないことを確認したうえで上書きするため、他の人の変更を誤って消してしまうリスクを減らせます。強制プッシュが必要な場面では --force-with-lease の使用が推奨されます。
誤って削除したブランチやコミットは復元できますか?
git reflog で直近の操作履歴を確認し、該当コミットのハッシュから git branch <ブランチ名> <ハッシュ> でブランチを復元できます。ただし reflog はデフォルトで90日程度で記録が期限切れになるため、なるべく早めに対応してください。
このツールのデータはいつ更新されますか?
最終更新日: 2026-07-03。日常的によく使うGitコマンドから、事故が起きやすい取り消し系コマンドまで幅広く収録しています。新しいコマンドや使用例があれば随時更新します。
逆引き・早見表ツール一覧
すべて見るAWS・GCP・Azure サービス比較・対応表
AWS / GCP / Azure の同等サービスを比較・横断検索できる対応表。クラウド移行・マルチクラウド設計に。
使う →
AIコーディングアシスタント コマンド比較・横断検索
Claude Code・Codex CLIのスラッシュコマンドを比較・横断検索。カテゴリ・重要度フィルター付き。
使う →
CI/CD設定 構文比較・横断検索
GitHub Actions・GitLab CI・CircleCI・AWS CodeBuildの設定構文を「やりたいこと」から比較・横断検索。移行・転職時の対応表に。
使う →
シェルコマンド 比較・対応表
Linux (bash) / cmd / PowerShell のコマンドを比較・対応表で横断検索。OS移行・併用に便利。
使う →
このツールについて
使い方
- 検索欄に「やりたいこと」(例: ブランチ削除)やコマンド名(例: rebase)を入力する
- カテゴリフィルター(ブランチ・コミット・リモート等)で絞り込む
- 安全度フィルターで「危険」なコマンドだけを確認することもできる
- 各カードの構文・実行例・注意点を確認してからコピー&ペーストで実行する
このツールの特徴
- ✓「やりたいこと」から逆引き:「ブランチを消したい」「直前のコミットを取り消したい」など、操作の目的からGitコマンドを検索できます
- ✓安全度を3段階で色分け:安全・要注意・危険の3段階で表示し、reset --hard や push --force のような取り返しのつかない操作を実行前に把握できます
- ✓構文と実行例をセットで掲載:各コマンドに基本構文と具体的な実行例を掲載しているため、コピー&ペーストですぐ使えます
- ✓公式ドキュメントへのリンク付き:git-scm.com の公式リファレンスへの直リンクで、詳細なオプションをすぐ確認できます
こんなときに便利
- •「あの操作、Gitコマンドで何だっけ」をコマンド名を思い出さずに検索したい
- •reset・revert・rebase など似た名前のコマンドの違いを整理したい
- •実行して大丈夫か不安なコマンドの危険度を事前に確認したい
- •チームメンバーやレビュー相手にコマンドの使い方を説明したい
- •Gitを学び始めたばかりで、まず何のコマンドがあるか一覧で眺めたい
なぜ「Gitコマンド逆引き検索」が必要なのか
Gitはコマンドの種類が多く、同じ「元に戻す」操作でも reset・revert・restore・checkout など複数のコマンドが存在し、それぞれ挙動も安全性も異なります。コマンド名を知らないと検索キーワードが定まらず、結局「git 元に戻す」のような曖昧な検索で消耗しがちです。
既存のGitコマンド一覧サイトの多くはコマンドを起点にした辞書形式で、コマンド名を知っている前提で作られています。本ツールは「やりたいこと」を起点に、対応するコマンドと注意点をセットで提示することで、コマンド名を覚えていなくても正しい操作にたどり着けることを目指しています。