Git:如何从单个git提交中获得+/-(插入和删除)的总数

时间:2015-10-12 17:52:34

标签: git github

我有一个git提交,需要获取插入和删除的总数。

我知道“git show <SHA>”正在显示我提交的详细信息,但我不确定如何仅从特定提交中获取更改总数。

git diff --stat <SHA1> <SHA2>也不起作用,因为我只应该使用一次提交。

如果您有任何信息,请与我分享。

3 个答案:

答案 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/