Gitの小ネタおれおれAdvent Calendar 2022 – 11 日目

よく使うコマンドに別名 alias を付けてショートカットすることができます。

例えばおれは git status --short --branch をよく使うので git s で出るようにしてます。

コマンドから設定するやり方と、その結果が保存されている設定ファイルを編集するやり方があります。ファイル編集の方がじっくりやれて良いかと思います、お好みですが。

コマンドで設定

config で alias.xxx を用意すると xxx というサブコマンド的なものが使えるようになります。

$ git config --global alias.s "status --short"
$ git s

これで s が status --short のエイリアスになります。

--global を付けなければ今いるプロジェクト専用のものになります。(普通はそうしないと思う。)

設定ファイルを編集

たぶん Linux なり何なり、お使いの環境のホームディレクトリー ~/ に .gitconfig というファイルがあります。

例えばもし先の git config を実行していれば、こんな感じのものが用意されているはず。

[alias]
        s = status --short

Git 実行のたびにこのファイルが参照されるみたいなので、つまり更新は即時反映されます。テキストエディターで開いて s を ss にすると git ss というコマンドで動くようになります。

エイリアス実行時にオプションを与える

エイリアスは単に入力置き換えるようなものなので、後ろにオプションを足すこともできます。

例えば先の s = status --short がある状態で、以下は同じ結果になります。

$ git status --short --branch
$ git s --branch

例

自分が設定しているものをいくつか。

1 文字のやつら

よく使うやつらは 1 文字で出てくるようにしてます。

[alias]
    s = status -sb
    c = checkout
    w = switch
    b = branch

git cm "message" で即コミット

普通 git commit すると Vim とかが出てきてコミットメッセージを入力するんですが、-m オプションでコマンドラインからメッセージを与えることができます。

だいたいは 1 行で済むので CLI から git cm "message" でさくっとコミットできるようにしています。

[alias]
    cm = commit -m

git path でコミットグラフを表示する

こないだ書いたやつ↑はこんなショートカット↓で登録してます。

[alias]
    path = log --graph --date=short --pretty=format:\"%C(yellow)%h %C(white)%s %C(green)%d %C(red)%cn %C(blue)%cd - %cr\"

Git ではないコマンドを実行

s = status --short の右側はコマンドラインでは git status --short に相当します。Git のサブコマンドというやつですね。

Git と関係ない、git xxx にならない通常のコマンド(例えば ls とか)が欲しい場合、! を先頭に付けると実現できます。

[alias]
        ignore-list = !cat .gitignore
$ git ignore-list
node_modules/
npm-debug.log*
.DS_Store

Git に関連するツールの呼び出しを想定しているみたい。

おしまい

人の .gitconfig を見せてもらうとへえ~があるかと思います。

参考