Gitは現代の開発に欠かせないバージョン管理ツールですが、日常的に使うコマンドは意外と限られています。本記事では、毎日の開発で頻出する10コマンドを厳選し、使いどころと注意点を実例つきで解説します。基本のadd/commit/pushは知っているが、現場で「もう一歩使いこなしたい」という方におすすめの内容です。
1. git status — 作業ツリーの状態確認
変更・ステージング・追跡外ファイルを一目で確認できる、もっとも頻繁に使うコマンドです。コミット前に必ず実行する習慣を付けると事故を防げます。
git status
git status -s # 短縮表示
2. git diff — 変更内容を確認
未ステージの変更を比較表示します。ステージ済みは --staged オプションで確認できます。
git diff # 未ステージの変更
git diff --staged # ステージ済みの変更
git diff main..feature # ブランチ間の差分
3. git add -p — 部分ステージング
1ファイル内の変更を「ハンク」単位で選びながらステージできます。1コミット1目的を守るうえで強力な機能です。
git add -p src/app.ts
# y/n でハンクごとに採否を選択
4. git commit –amend — 直前コミットの修正
直前のコミットにファイル追加し忘れた、メッセージを修正したい場合に使います。push済みのコミットには使わないのが鉄則です。
git add forgotten.ts
git commit --amend --no-edit # メッセージはそのまま
git commit --amend -m "新しいメッセージ"
5. git switch / git restore — branchとcheckoutの分業
従来 git checkout が担っていた役割が、用途別に2コマンドに分かれました。意味が明確になり事故が減ります。
git switch feature # ブランチ切替
git switch -c feature # ブランチ作成して切替
git restore src/app.ts # ファイルの変更を破棄
git restore --staged file # ステージ解除
6. git log — 履歴を見やすく
そのまま使うと冗長なので、エイリアス化して短い表示にするのが定番です。
git log --oneline --graph --decorate --all
git log -p path/to/file # ファイルの変更履歴を内容付きで
git log -S "search_text" # 文字列が登場したコミットを検索
7. git stash — 作業を一時退避
未コミットの作業を退避し、後で復元できます。割り込み対応や急なブランチ切替で役立ちます。
git stash push -m "WIP: refactor"
git stash list
git stash pop # 最新を復元して削除
git stash apply stash@{1} # 古いものを復元(残す)
8. git rebase — 履歴を整理
分岐元を最新に追従させたり、自分の作業中コミットを整理する用途で頻出します。インタラクティブモードはコミットの統合・並べ替え・メッセージ修正に便利です。
git fetch origin
git rebase origin/main # main最新に追従
git rebase -i HEAD~3 # 直近3コミットを整理
9. git cherry-pick — 特定コミットだけ取り込む
別ブランチの特定コミットだけを現在のブランチに取り込めます。ホットフィックスを複数ブランチに展開する場面で役立ちます。
git cherry-pick <commit-hash>
git cherry-pick A..B # 範囲指定
10. git reflog — 失った操作を取り戻す
resetやrebaseで「コミットを失った」ように見える場合でも、reflogに履歴が残っているので大抵復元できます。Git最後の砦と言われる重要コマンドです。
git reflog
git reset --hard HEAD@{2} # 2つ前の状態に戻す
まとめ
add / commit / push に加えて、本記事の10コマンドを使えるようになると、Gitの「困った!」のほとんどは自力で解決できるようになります。とくに git add -p git rebase -i git reflog の3つは、コミット品質と安全性を一段引き上げてくれるので、まずはこれらから日々の開発に取り入れてみてください。