🐙
今日Gitにコミットしたコードの行数を数えるエイリアス
今日1日、自分がGitにコミットしたコードの行数を数えるaliasを紹介します。
~/.gitconfig
を開き、以下のエイリアスを追加します。
エイリアス
[alias]
today-numstat = !"f(){ \
git log \
--numstat \
--branches \
--no-merges \
--since=midnight \
--author=\"$(git config user.name)\" \
| awk 'NF==3 {a+=$1; d+=$2} END { \
printf(\"%d (\\x1b[32m+%d\\033[m, \\x1b[31m-%d\\033[m)\\n\", a+d, a, d)\
}'; \
};f"
見やすさのために複数行に分けていますが、1行にしたり適当なサイズでオプションを連結しても問題ありません。
今日1日の作業を取るために、複数ブランチ上での作業を含んで取得、マージコミットを除外、その日の深夜から今を基準に、自分のコミットのみを取得し、git log --numstat
で変更の詳細を取得します。
その後awk
コマンドで追加/削除行数をそれぞれ取得して足し合わせ、出力するようにしています。
printf
の中が複雑に見えますが、追加行数の数値を緑に、削除行数の数値を赤に色を変える処理を挟んでいます。
実行
いい感じに出力されます。
参考にした記事
この記事で紹介されていた方法を今日に範囲を絞って今日の作業量を出力できるようにしました。
今日のコミットの一覧を出力する
はるか昔に書いた記事を貼っておきます。
Discussion
ありがとうございます!とても便利で助かりました。