git aliasのおすすめ設定6選!

git status、git checkout、git commit。個人開発をやっていると、この辺のコマンドを1日に何十回も打つことになる。
1回1回は数秒でも、毎回フルスペルで打つのは正直だるい。しかもgitは短縮形を勝手に効かせてくれないから、git chec みたいに途中まで打っても動かない。
ただ、本題はその先にある。エイリアスは張りすぎると逆に困る場面がある。
目次 / INDEX
gitエイリアスは「長いコマンドの別名」。git configで一瞬で作れる
結論から言うと、エイリアスは長いgitコマンドに短い別名をつける機能で、git config で作れる。
git config --global alias.co checkout
これを1回打つと、以後 git co が git checkout として動く。仕組みとしてはこれだけ。特別なツールも要らないし、インストールも要らない。
実体も単純で、~/.gitconfig の [alias] セクションにテキストで書かれるだけ。だからエディタで直接編集してもいいし、コマンドで足してもいい。
置き場所は—global一択。localに置くと毎回やり直しになる
エイリアスを設定するとき、--global を付けるか付けないかで効く範囲が変わる。
--global を付けると ~/.gitconfig に書かれて、そのPCの全リポジトリで効く。付けないと --local 扱いで .git/config に書かれて、そのリポジトリ限定になる。
つまりlocalに置くと、新しいリポジトリを作るたびに同じエイリアスを設定し直すことになる。打鍵を減らすためのエイリアスなのに、設定の手間が増えたら本末転倒だ。
エイリアスは「自分の手癖」であって「プロジェクトの設定」じゃない。だから基本globalでいいと思う。設定が3層(local、global、system)あって狭い層が勝つ、という話は git configの3層 に書いたので、詳しくはそっちで。
まず張るならこの6つ。定番エイリアスと登録コマンド
よく紹介される定番はだいたい決まってる。頭文字2文字に縮めるパターンだ。
| エイリアス | 元のコマンド |
|---|---|
co | checkout |
st | status |
br | branch |
ci | commit |
df | diff |
lg | log --oneline --graph --decorate --all |
登録コマンドはこう。
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.df diff
git config --global alias.lg "log --oneline --graph --decorate --all"
この中で一番効くのは lg だと思う。上の5つは単なる短縮だけど、lg は「オプションを4つ付けた長いコマンド」を丸ごと2文字にしている。
コミット履歴が1行ずつ、ブランチのグラフ付きで出る。素で打つと覚えてられない長さのやつが git lg で出るのは気持ちいい!
引数のあるコマンドを登録するときは、lg の例みたいにダブルクオートで全体を囲むのがポイント。囲まないと途中で切れる。
ちなみに、gitのサブコマンド以外のシェルコマンドを呼びたいときは頭に ! を付ける書き方もある。git config --global alias.hi '!echo hi' みたいな形で、! 付きはシェルとして実行される。ただしこの挙動はシェル環境によって差があるはずなので、深入りせず「そういうのもある」くらいで。
どこまでエイリアスにすべきか。基準は「頻度が高い×打つのが長い」
ここが本題。エイリアスは便利だけど、何でもかんでも張ればいいわけじゃない。僕の基準は「頻度が高い、かつ打つのが長い」ものだけ張る、これに尽きる。
対比で考えるとわかりやすい。status は1日に何十回も打つし、フルで打つと長い。だから st に縮める価値がある。
逆に、たまにしか打たないコマンドを縮めても、次に使うときには「あれ、何て名前で登録したっけ」になる。思い出せずに --get-regexp で一覧を引くくらいなら、最初からフルで打った方が速い。使用頻度の低いエイリアスは、時短どころかタイプミスと混乱の温床になる。
もうひとつ、危険な操作はエイリアスにしない方がいいと思ってる。push --force みたいな、取り返しのつかない系だ。短く打てるということは、勢いで叩けてしまうということでもある。
長いコマンドをフルで打つあの「ひと手間」は、実は最後の安全弁になっている。打つのがだるいコマンドをあえてだるいまま残す、というのもエイリアス設計のうちだ。
あと、副作用もひとつ。エイリアスは自分のPCのglobal設定でしかないから、他人のPCや新しい端末では効かない。git co が体に染み付くほど、素のgitしかない環境で手が止まる。
gitの設定(git config)は、リポジトリをcloneしても一緒には配られない。エイリアスも同じで、別の環境には付いてきてくれない。共用マシンとか、友達のPCを借りて作業するとき、これは地味に効いてくる。
まとめると、こういう線引きになる。
- 張る:毎日打つ、かつ長いもの(
st、co、lgみたいな) - 張らない:たまにしか打たないもの、取り返しのつかない操作
登録の確認と消し方
登録したエイリアスの一覧は、これで確認できる。
git config --global --get-regexp alias
alias で始まる設定行だけが出てくる。使わなくなったものを消すときは --unset だ。
git config --global --unset alias.co
前に書いた通り、実体は ~/.gitconfig のテキストなので、エディタで開いて [alias] セクションを直接消してもいい。増やす、確認する、減らす、が全部1行で済むので、気軽に試して気軽に戻せる。
まとめ
- エイリアスは
git config --global alias.<名前> <コマンド>で作れる。置き場所はglobal - 基準は「頻度が高い×打つのが長い」。危険な操作は張らない
- 他人のPCでは効かないので、素のコマンドも忘れない程度に
まずは co、st、lg の3つだけ登録してみてほしい。3行打つだけで、明日からの git status が git st になる。合わなかったら --unset で消せばいいだけなので、試すコストはほとんどない。
打鍵を減らす話は、gitに限らずエディタ側にも同じ発想がある。VS Codeの設定と拡張機能の「覚えると速くなるショートカット」も、考え方は同じだ。キーバインドを頻度×距離で3つだけ選ぶやり方も、この線引きとほぼ同じ発想になっている。
よくある質問
git aliasはどうやって設定する?
git config --global alias.co checkout のように1行打つだけ。以後 git co が git checkout として動く。実体は ~/.gitconfig の [alias] セクションに書かれるテキストなので、エディタで直接編集してもいい。
git aliasは--globalと--localのどちらに置く?
基本は--global。localに置くとそのリポジトリ限定になり、新しいリポジトリを作るたびに設定し直すことになる。エイリアスは自分の手癖であってプロジェクトの設定ではないので、globalが自然。
登録したgit aliasの一覧確認と削除は?
一覧は git config --global --get-regexp alias で出る。消すときは git config --global --unset alias.co のように --unset を使う。~/.gitconfig を開いて [alias] セクションを直接消してもいい。