開発者向け必須Gitコマンドリファレンス
クローンからリベース、force-push事故の復旧まで—実際に使うGitコマンドを、コピペ可能な行と一言説明付きで整理します。

なぜ重要か
新入りがgit push --forceを共有のmainへかけて昨日のコミットを吹き飛ばした。復旧は30秒でできるgit reflogだけ—それを知っていればです。Gitは構文こそ容赦なくとも安全網には寛容で、clone、commit、push以外を知らずに機能の10%しか使わない開発者も多いです。カテゴリ化されたチートシートはチームが持っておける最高ROIの資料のひとつです。
実際の3つのシーン
git rebase -i mainでpick/squash。リファレンスにインタラクティブリベースの動詞一覧があります。
きれいなmain歴史
git bisect start good bad、各検証ごとにgood/bad を付けると二分で犯人が浮かびます。
7コミットで原因に到達
git reflogがHEADの移動をすべて表示し、git reset --hard <reflog-id>で復元できます。
被害回避
手順 — リファレンスの使い方
Gitコマンドリファレンスを開きます。
ワークフロー段階でブラウズ
セットアップ、日々のコミット、ブランチ管理、リモート同期、歴史書き換え、デバッグ、復旧。
動詞で検索
「rebase」「stash」「cherry-pick」など—説明つきで一致コマンドが出ます。
正準の実行例をコピー
各項目に「実際に打つ一行」とオプション付き複数行版があります。
落とし穴メモを読む
--forceの意味、pull --rebaseと既定マージの違いなど多くが警告されています。よく使うカテゴリをピン
「歴史書き換え」などストレス時にすぐ開けるようブックマークします。
ゴール
Start a feature, save WIP, sync with main,
finish, push for PR.コマンド
git checkout -b feature/payment-retry
# work, work, work
git add . && git commit -m "WIP retry logic"
git fetch origin
git rebase origin/main
# fix any conflicts, then:
git push -u origin feature/payment-retry症状
You ran `git reset --hard HEAD~5`
and now the last 5 commits seem gone.修正
git reflog # find the SHA before the reset
git reset --hard <SHA> # restore HEAD to it
実践テクノ
- **
git switchとgit restore**でcheckoutの役割過多を減らす。switchはブランチ、restoreはファイル。曖昧さとミスが減ります。 git logに**--first-parent**とマージノイズを畳んでmainラインのみ表示。- **
pull.rebase = true**でgit pull既定をリベース—フィーチャブランチの「マージのみ」連発を抑制。 - 直しは共有ブランチにpush済みなら
git commit --amendではなく**git rebase -i**。古いコミット修正案は-i。
よくある落とし穴
よくある誤り
force-pushで同僚の作業が消える
git push --forceの代わりに**--force-with-lease**。フェッチ後にリモートが進んでいたら中止。自分だけのブランチと分かっているとき以外は常に。
よくある誤り
誤ってシークレットをコミット
git filter-repo(またはBFG Repo-Cleaner)で履歴から除去し、すぐに漏れたシークレットをローテートしてください。
よくある誤り
`git rebase main` と `git rebase origin/main` の取り違え
ローカルmainが古いままかも。先にgit fetchするか明示的にorigin/mainへリベース。
向いていない用途
- ブランチグラフの可視化—Lazygit・GitKraken・VS Code Git Graphの方が
git log --graphより速いです。 - コードレビュー—
git diffは差分のみ。GitHub/GitLab/Gerritがコメントと承認を扱います。 - 巨大バイナリ—Git LFSや
git annexであり素のGitではありません。
FAQ
ファストフォワードとは?
未分岐の一直線へブランチポインタだけ進めるマージ。マージコミットが要らない典型。相手ブランチが動いていなければ起きやすいです。
いつ `git stash` を使う?
本当に捨てられるWIP向き。実作業はwipコミットを一時ブランチにの方が紛失しにくいです。
reflogは永久?
いいえ。通常90日、到達不能は30日程度で期限切れです。その後はgit fsck --lost-found程度が望み細いです。
次のステップ
- シェルでGitと併せてLinuxコマンドリファレンス(grep、find、awk)を活用します。
- リモートURLやポートの確認にはURLパーサー。
git pushのHTTPコード(401、403、502)はHTTPステータスリファレンスへ。