nob@lit-forge

Git コマンド 早見表

日常開発で使う Git コマンドを用途別にまとめた早見表。branch / merge / rebase / stash / reset / cherry-pick など、覚えづらいコマンドの違いと安全な使い方を実例付きで。トラブル時の「やり直し」コマンド集も収録。

#Git#コマンド#バージョン管理

初期化・クローン

git init                         # 新規リポジトリ
git clone <url>                  # リモートからクローン
git clone <url> dir              # dir 名でクローン
git remote add origin <url>      # リモート先を追加

状態確認

git status                       # 作業ツリーの状態
git status -s                    # 短縮表示
git diff                         # 未ステージの差分
git diff --staged                # ステージ済みの差分
git log --oneline -20            # 履歴(1 行、20 件)
git log --graph --oneline --all  # グラフ表示

コミット

git add <path>                   # ステージング
git add -p                       # 部分的にステージ(対話式)
git commit -m "message"          # コミット
git commit --amend               # 直前のコミットを修正
git commit --amend --no-edit     # メッセージ維持で変更だけ取り込み

ブランチ

git branch                       # ブランチ一覧
git branch -a                    # リモート含む全部
git branch <name>                # 作成
git switch <name>                # 切替(新しい構文)
git switch -c <name>             # 作成 + 切替
git branch -d <name>             # 削除(マージ済みのみ)
git branch -D <name>             # 強制削除

マージ・リベース

git merge <branch>               # マージ
git merge --no-ff <branch>       # Fast-Forward を防ぐ
git rebase <branch>              # リベース(履歴を線形化)
git rebase -i HEAD~3             # インタラクティブリベース(最近 3 件)
git rebase --abort               # 中止
git rebase --continue            # 競合解消後に続行

リモートとの同期

git fetch                        # 取得(マージしない)
git pull                         # fetch + merge
git pull --rebase                # fetch + rebase(履歴をきれいに)
git push                         # プッシュ
git push -u origin <branch>      # 初回プッシュ(追跡設定)
git push --force-with-lease      # 安全な強制プッシュ

stash(一時退避)

git stash                        # 作業中の変更を退避
git stash -u                     # 未追跡ファイルも含む
git stash list                   # 退避一覧
git stash pop                    # 最新 stash を適用 + 削除
git stash apply stash@{"{2}"}        # 指定 stash を適用
git stash drop stash@{"{0}"}         # 削除

cherry-pick(特定コミットだけ取り込み)

git cherry-pick <commit>         # 単一コミット
git cherry-pick <c1>..<c2>       # 範囲
git cherry-pick --abort          # 中止

やり直し・取り消し

git restore <path>               # 未ステージの変更を破棄
git restore --staged <path>      # ステージングを解除
git reset --soft HEAD~1          # 直前コミットだけ取消(変更は残す)
git reset --mixed HEAD~1         # 取消 + アンステージ(デフォルト)
git reset --hard HEAD~1          # 取消 + 変更も破棄(危険)
git revert <commit>              # 打ち消しコミットを作成(公開ブランチ向き)

タグ

git tag v1.0.0                   # 軽量タグ
git tag -a v1.0.0 -m "release"   # 注釈付きタグ
git tag                          # 一覧
git push origin v1.0.0           # 単一タグを push
git push origin --tags           # 全タグを push
git tag -d v1.0.0                # ローカル削除
git push origin :refs/tags/v1.0.0 # リモート削除

配置ミスの救済

  • 間違えてコミット: git reset --soft HEAD~1(変更はステージに残る)
  • 間違えて push した内容を消したい: 公開ブランチなら git revert を使う
  • force push の代わりに: --force-with-lease(他人の push を巻き込まない安全版)
  • コミット履歴から削除したい機密ファイル: git filter-repo(履歴書き換え。チーム合意必須)
  • 消したブランチを復活したい: git reflog で SHA を特定し、git branch name <SHA>