2013-10-05

bash_history から自分の手癖を発見する (git 編)

cat ~/.bash_history | awk '$1=="git" { print $0 }' | awk '{ print $1, $2 }' | sort -k2 | uniq -c | awk '$1>1 {print $0}' | sort -r

前回の記事で bash_history から自分の手癖を発見した が、そこで一番多いコマンドが git だった。そこで追調査ということで git のなかでもさらにどんな git 内コマンドを使っているのかを上記コマンドで調べてみた。

321 git s
    187 git d
    133 git l
    132 git co
    119 git ci
    100 git push
     89 git b

結果は上記の通りだが、案の定 .gitconfig の [alias] で設定しているコマンドが多くなった。それぞれ以下のように設定している。

s = status --short --branch
    d = diff
    l = log --graph -n 20 --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(green)- %an, %cr%Creset'
    co = checkout
    ci = commit
    b = branch -a

こうして結果を見てみると、status > diff > log > checkout > commit > push > branch となっている。まあ status, diff, log の現状確認系は多いだろうなという感じで (diff --cached は別集計, branch が少ないのはシェル上に表示しているから), ci より co のほうが多いのは意外 (これはもしかすると集計ロジックミスかもとすら思える)。