我有一个git提交,需要获取插入和删除的总数。
我知道“git show <SHA>
”正在显示我提交的详细信息,但我不确定如何仅从特定提交中获取更改总数。
git diff --stat <SHA1> <SHA2>
也不起作用,因为我只应该使用一次提交。
如果您有任何信息,请与我分享。
答案 0 :(得分:3)
您仍然可以使用git diff --stat
:
git diff --stat <SHA>~ <SHA>
# or, for a global total only:
git diff --shortstat <SHA>~ <SHA>
~
指的是<SHA>
的直接父级。您只使用一个<SHA>
:提交<SHA>
和its direct parent <SHA>~
。
例如:
C:\Users\vonc\prog\git\git>git diff --stat e646ab9cf83025e1000db6ec3c1716f978b099f2~ e646ab9cf83025e1000db6ec3c1716f978b099f2
po/TEAMS | 8 +-
po/ca.po | 3949 ++++++++++++++++++++++++++++++-------------------------
po/de.po | 3776 +++++++++++++++++++++++++++++-----------------------
po/fr.po | 3746 +++++++++++++++++++++++++++++-----------------------
po/git.pot | 3547 +++++++++++++++++++++++++++----------------------
po/sv.po | 3723 +++++++++++++++++++++++++++++-----------------------
po/vi.po | 3762 +++++++++++++++++++++++++++++-----------------------
po/zh_CN.po | 4217 +++++++++++++++++++++++++++++++++--------------------------
8 files changed, 15007 insertions(+), 11721 deletions(-)
仅限总数:
C:\Users\vonc\prog\git\git>git diff --shortstat e646ab9cf83025e1000db6ec3c1716f978b099f2~ e646ab9cf83025e1000db6ec3c1716f978b099f2
8 files changed, 15007 insertions(+), 11721 deletions(-)
答案 1 :(得分:0)
git show --stat $commitish
是一回事。不知道自从你看到其他人之后你是如何错过它的。
答案 2 :(得分:0)
这是一个可以在终端输入的简短脚本: -
git config --global alias.total '!echo $(git log --author="$(git
config user.name)" --no-merges --before=$(date "+%Y-%m-%dT00:00") --reverse | grep commit | wc -l) commits, $(git log --author="$(
git config user.name)" --no-merges --before=$(date "+%Y-%m-%dT00:00") --reverse --stat | grep -Eo "[0-9]{1,} files? changed" | grep
-Eo "[0-9]{1,}" | awk "{ sum += \$1 } END { print sum }") files changed, $(git log --author="$(git config user.name)" --no-merges -
-before=$(date "+%Y-%m-%dT00:00") --reverse --stat | grep -Eo "[0-9]{1,} insertions?" | grep -Eo "[0-9]{1,}" | awk "{ sum += \$1 }
END { print sum }") insertions and $(git log --author="$(git config user.name)" --no-merges --before=$(date "+%Y-%m-01T00:00") --re
verse --stat | grep -Eo "[0-9]{1,} deletions?" | grep -Eo "[0-9]{1,}" | awk "{ sum += \$1 } END { print sum }") deletions'
并像这样使用: -
git total
所有功劳归功于这篇精彩的博文: - http://helpfulsheep.com/2016-03-22-what-git-i-do-last-month/