
よく使う Git コマンド一覧と、設定しておくと便利な alias
Git は毎日使うのに、コマンドは長くて覚えにくく、同じものを何度もタイプしがちです。git log --oneline --graph --decorate --all を毎回打つのは骨が折れます。
この記事では、日常でよく使う Git コマンドを用途別に整理し、さらに設定しておくと作業が速くなる aliasを紹介します。タイプ量を減らし、面倒な操作をワンコマンドにまとめるのが狙いです(確認は git 2.52.0 で行っています)。
コミットメッセージの規約は Conventional Commits の記事、ターミナルでの Git 操作は Git TUI(lazygit など)の記事も合わせてどうぞ。
よく使う Git コマンド一覧
状態確認・差分
| コマンド | 用途 |
|---|---|
git status | 変更・ステージ状況を確認 |
git status -s | 短い形式で状況を確認(-sb でブランチも) |
git diff | 未ステージの差分を表示 |
git diff --staged | ステージ済みの差分を表示(コミット直前の確認に) |
git log --oneline | 1行ログ |
git log --oneline --graph --decorate | グラフ付きの見やすいログ |
git show <commit> | 特定コミットの内容を表示 |
git blame <file> | 行ごとの最終変更者・コミットを表示 |
ステージ・コミット
| コマンド | 用途 |
|---|---|
git add <file> | ファイルをステージ |
git add -p | 変更をハンク単位で対話的にステージ(部分コミットに必須) |
git commit -m "..." | メッセージ付きでコミット |
git commit --amend | 直前のコミットを修正(メッセージ・内容) |
git commit --amend --no-edit | 直前コミットにステージ分を足す(メッセージは変えない) |
git restore --staged <file> | ステージを取り消す(変更は残す) |
git restore <file> | 変更を破棄してファイルを戻す(要注意) |
ブランチ・切り替え
| コマンド | 用途 |
|---|---|
git switch <branch> | ブランチを切り替え(新しめの専用コマンド) |
git switch -c <branch> | ブランチを新規作成して切り替え |
git branch | ブランチ一覧 |
git branch -d <branch> | ブランチ削除(マージ済みのみ。未マージは -D) |
git restore <file> | ファイル単位の復元(git checkout の役割を分割した片方) |
NOTE
以前は git checkout が「ブランチ切り替え」と「ファイル復元」を兼ねていました。現在は役割が分割され、ブランチ操作は git switch、ファイル復元は git restore を使うのが推奨です。git checkout も引き続き使えます。
リモート連携
| コマンド | 用途 |
|---|---|
git fetch | リモートの変更を取得(マージはしない) |
git pull | fetch + マージ |
git pull --rebase | fetch + リベース(履歴を一直線に保つ) |
git push | リモートへ反映 |
git push -u origin <branch> | 上流を設定しつつ push(初回) |
git push --force-with-lease | 安全な強制 push(他人の変更を消さない) |
WARNING
強制 push は git push --force ではなく git push --force-with-lease を使ってください。--force は他の人がリモートに足した変更を問答無用で上書きしますが、--force-with-lease は「自分が把握しているリモートの状態」と食い違う場合に push を拒否し、事故を防ぎます。
やり直し・退避
| コマンド | 用途 |
|---|---|
git stash | 作業中の変更を一時退避 |
git stash pop | 退避した変更を戻す |
git reset --soft HEAD~1 | 直前コミットを取り消す(変更はステージに残す) |
git reset --hard HEAD~1 | 直前コミットと変更を完全に破棄(要注意) |
git revert <commit> | 指定コミットを打ち消す新コミットを作る(履歴を残す) |
git reflog | HEAD の移動履歴。やらかした後の復旧の命綱 |
TIP
git reset --hard で消したと思っても、git reflog で直前の HEAD の位置を探せば多くの場合復旧できます。「やってしまった」ときはまず git reflog を見るのが鉄則です。
alias を設定する2つの方法
同じコマンドを繰り返し打つなら、alias で短縮しましょう。方法は2つあります。
- git の alias:
git <alias>の形で使う(git stなど)。Git の機能なので環境を選ばない - シェルの alias:
gstのようにgit自体も省略する(.zshrc/.bashrcに書く)
1. git config の alias
設定はコマンド一発、または設定ファイル直書きです。
git config --global alias.st "status -sb"
git config --global alias.co "checkout"
git config --global alias.sw "switch"
git config --global alias.br "branch"
git config --global alias.cm "commit -m"
git config --global alias.aa "add -A"
git config --global alias.ap "add -p"
git config --global alias.unstage "restore --staged"
git config --global alias.last "log -1 HEAD"
git config --global alias.lg "log --oneline --graph --decorate --all"設定後は git st や git lg で使えます。~/.gitconfig に直接書くこともできます。
[alias]
st = status -sb
sw = switch
cm = commit -m
ap = add -p
unstage = restore --staged
lg = log --oneline --graph --decorate --all
# ! を付けるとシェルコマンドも実行できる
amend = commit --amend --no-edit
pf = push --force-with-leaseシェルコマンドを呼ぶ alias
git alias の先頭に ! を付けると、シェルコマンドや複数コマンドを実行できます。
[alias]
# マージ済みローカルブランチを一括削除(main/master は残す)
cleanup = "!git branch --merged | grep -vE '^\\*|main|master' | xargs -r git branch -d"
# 直近の操作履歴を見やすく
hist = "!git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"2. シェルの alias(git ごと省略)
git のタイプすら省きたいなら、シェルの alias が速いです。.zshrc などに書きます。
alias g='git'
alias gst='git status -sb'
alias gco='git switch'
alias gcm='git commit -m'
alias gaa='git add -A'
alias gap='git add -p'
alias gp='git push'
alias gpl='git pull --rebase'
alias glg='git log --oneline --graph --decorate --all'書き換えたら source ~/.zshrc で反映します。gst のように2〜3文字で打てるので、git alias よりさらに速くなります。
TIP
Oh My Zsh の git プラグインを使うと、gst(status)・gco(checkout)・gp(push)など数百の git alias が最初から用意されています。自分で定義する前に、まずそれを眺めて「よく使うものだけ覚える」のも手です。
おすすめの最小セット
「全部は覚えられない」という人向けに、効果が大きい順の最小セットを挙げます。
| alias | 展開 | なぜ便利か |
|---|---|---|
git st | status -sb | 一番打つコマンドを2文字に |
git lg | log --oneline --graph --decorate --all | 長いログコマンドの定番を短縮 |
git ap | add -p | 部分ステージングの入口を短く |
git cm | commit -m | コミットの定番 |
git unstage | restore --staged | 「ステージ取り消し」を覚えやすい名前に |
git pf | push --force-with-lease | 安全な強制 push をデフォルト習慣に |
まずこの6個から始めて、繰り返し打っているコマンドに気づくたびに足していくのがおすすめです。
alias 運用のコツ
- 打っているコマンドを観察して足す: 先に大量定義するより、「あ、これ3回目だ」と思ったものを alias 化するほうが身につく
- 名前は意味で覚える:
unstageのように、動作が分かる名前にすると忘れにくい(短さより分かりやすさ優先のものも混ぜる) - 危険な操作はあえて短くしない:
reset --hardをgit rhのように短くすると、勢いで叩いて事故る。破壊的なものは長いままにしておくのも防御 - dotfiles で共有する:
.gitconfig/.zshrcを git 管理して複数マシンで同期すると、どの環境でも同じ操作感になる
ターミナル中心の Git 操作をさらに快適にしたいなら、alias に加えて lazygit などの Git TUI を併用すると、部分ステージングや対話的リベースが一段楽になります。
まとめ
- よく使う Git コマンドは「状態確認 / ステージ・コミット / ブランチ / リモート / やり直し」で整理すると覚えやすい
- ブランチ切り替えは
git switch、ファイル復元はgit restore(git checkoutの役割分割版) - 強制 push は
--forceではなく--force-with-leaseを習慣に - alias は2方式:
git st等のgit alias(環境非依存)と、gst等のシェル alias(git ごと省略) - まずは
st / lg / ap / cm / unstage / pfの6個から。繰り返し打つコマンドを観察して足していくのがコツ - 破壊的な操作はあえて短くしない、名前は意味で覚える、dotfiles で共有する
Git のタイプ量は、塵も積もれば毎日の作業時間に効いてきます。まず git config --global alias.st "status -sb" の1行から始めてみてください。