git - 如何统计 git 存储库中每个提交者的总行数

标签 git

我想计算 git 存储库中每个提交者的总行数。我只得到以下解决方案:

git log --format='%aN' | sort -u | \
  while read name; do
    echo -en "$name\t"
    git log --author="$name" --pretty=tformat: --numstat | \
    awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
  done

它可以计算出每个提交者的总行数的所有历史记录。但我想在当前快照中计算出每个提交者的总行数。我不知道该怎么做。

您有解决这个问题的方法吗?

最佳答案

这有点过大而且缓慢,但你可以这样做。

git log --format='%aN' | sort -u | \
  while read name; do
    echo -en "$name\t"
    for FILE in $(git ls-files) ; do git blame $FILE | grep "$name" ; done | wc -l
  done

关于git - 如何统计 git 存储库中每个提交者的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53624905/

相关文章:

git - TotoiseHG : An existing connection was forcibly closed by the remote host

git - Git 存储库中文件的唯一标识符

git - 如何防止 git vimdiff 以只读方式打开文件?

java - Git分支管理: Local vs.远程

ruby - 如何在 docker 容器中使用私有(private) gems(GemFury)?

git - 在 Android Studio 中回滚上次提交

git - 意外推送大文件后如何减小 git 存储库的大小?

Git 使用 cronjob 自动 pull

git - 在我的 Visual Studio 解决方案资源管理器中,前面的小红色减号图标是什么意思?

Git:探索远程中的对象