揮発性のメモ2

http://d.hatena.ne.jp/iww/

hoge

gitのaliasの一覧を表示する

[alias]
    alias = !"f(){ git config --get-regexp alias|cut -d'.' -f2|if [ -z $1 ];then cut -d' ' -f1|column; else grep $1' '; fi }; f"

.gitconfigに書いたエイリアスの一覧表示と詳細表示のコマンドを表示するエイリアス


使い方:

一覧表示
$ git alias
ls      alias   bomb    clean

詳細表示
$ git alias ls
ls ls-files -cdmokt --exclude-standard

gitで登録したaliasコマンド一の覧や内容をイイ感じに確認できるようにしてみた
をもとに、少し改造させてもらった。



gitのエイリアスに渡される引数について

gitのエイリアスは コマンド全体に対して引数が渡されるらしい。

[alias]
    b = !"echo A |cat"

というエイリアスで確認してみると

$ git b
A

$ git b hoge
cat: hoge: No such file or directory

ということで、 パイプでつなげた場合に引数を取得できるのは 最後のコマンドだけ という悲しい実装になってた。


Gitのエイリアスで引数を使う
こちらによると、関数を作ればいけるとあったのでテストしてみる

[alias]
    c = !"f(){ echo 1=$1, 2=$2, 3=$3; }; f"

というコマンドで実験してみると

$ LANG=C git c A B C
1=A, 2=B, 3=C

ばっちり動作した