よく使う Git コマンド一覧と、設定しておくと便利な alias

よく使う 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 --oneline1行ログ
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 pullfetch + マージ
git pull --rebasefetch + リベース(履歴を一直線に保つ)
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 reflogHEAD の移動履歴。やらかした後の復旧の命綱

TIP

git reset --hard で消したと思っても、git reflog で直前の HEAD の位置を探せば多くの場合復旧できます。「やってしまった」ときはまず git reflog を見るのが鉄則です。

alias を設定する2つの方法

同じコマンドを繰り返し打つなら、alias で短縮しましょう。方法は2つあります。

  1. git の alias: git <alias> の形で使う(git st など)。Git の機能なので環境を選ばない
  2. シェルの alias: gst のように git 自体も省略する(.zshrc / .bashrc に書く)

1. git config の alias

設定はコマンド一発、または設定ファイル直書きです。

git の 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 stgit lg で使えます。~/.gitconfig に直接書くこともできます。

~/.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 の先頭に ! を付けると、シェルコマンドや複数コマンドを実行できます。

~/.gitconfig(! でシェル実行)
[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 などに書きます。

~/.zshrc(シェル alias)
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 ststatus -sb一番打つコマンドを2文字に
git lglog --oneline --graph --decorate --all長いログコマンドの定番を短縮
git apadd -p部分ステージングの入口を短く
git cmcommit -mコミットの定番
git unstagerestore --staged「ステージ取り消し」を覚えやすい名前に
git pfpush --force-with-lease安全な強制 push をデフォルト習慣に

まずこの6個から始めて、繰り返し打っているコマンドに気づくたびに足していくのがおすすめです。

alias 運用のコツ

  • 打っているコマンドを観察して足す: 先に大量定義するより、「あ、これ3回目だ」と思ったものを alias 化するほうが身につく
  • 名前は意味で覚える: unstage のように、動作が分かる名前にすると忘れにくい(短さより分かりやすさ優先のものも混ぜる)
  • 危険な操作はあえて短くしない: reset --hardgit rh のように短くすると、勢いで叩いて事故る。破壊的なものは長いままにしておくのも防御
  • dotfiles で共有する: .gitconfig / .zshrc を git 管理して複数マシンで同期すると、どの環境でも同じ操作感になる

ターミナル中心の Git 操作をさらに快適にしたいなら、alias に加えて lazygit などの Git TUI を併用すると、部分ステージングや対話的リベースが一段楽になります。

まとめ

  • よく使う Git コマンドは「状態確認 / ステージ・コミット / ブランチ / リモート / やり直し」で整理すると覚えやすい
  • ブランチ切り替えは git switch、ファイル復元は git restoregit 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行から始めてみてください。

参考リンク