背景
今日一日の作業実績を確認したり、自分のモチベーションアップのためにサクッとgitでcommitした行数を確認したかった!
方法
以下コマンド実行
git log --numstat --pretty="%H" -1 --no-merges | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("%d (+%d, -%d)\n", plus+minus, plus, minus)}'
-1は行数チェックの対象コミット数を示しています。
なので直近の3つのコミットを対象としたい場合は-3としてください。
結果
上記コマンドを実行すると以下のような出力が得られる。
左から、合計行数と+追加行数、-削除行数が表示される。
$ git log --numstat --pretty="%H" -1 --no-merges | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("%d (+%d, -%d)\n", plus+minus, plus, minus)}'
675 (+507, -168)
その他
ライブラリなど除外したいファイルがある場合は以下のようにすると良さそう。
方法としては以下
git log --numstat --pretty="%H" -1 --format=%s -- . ":(exclude)postgres"
上記は例で「postgres」のディレクトリが除外設定されている。
--format=%s -- . ":(exclude)postgres"
上記の部分でpostgresのディレクトリを除外している
複数のディレクトリを指定する場合はつなげて以下のようにすると良さげ
git log --numstat --pretty="%H" -1 --format=%s -- . ":(exclude)postgres" --format=%s -- . ":(exclude)golang/github.com"
参考にしたURL
Thanks!
altさん、タグ修正ありがとうございます…!