有没有简单的方法来计算Git中两次提交之间更改的行数?

我知道我可以做一个git diff,并数行,但这似乎很乏味。我还想知道如何做到这一点,在行计数中只包括我自己的提交。


当前回答

git diff --stat commit1 commit2

EDIT:您还必须指定提交(如果没有参数,它将工作目录与索引进行比较)。如。

git diff --stat HEAD^ HEAD

比较HEAD和HEAD的父类。

其他回答

虽然以上答案都是正确的,但如果你需要计算最后提交的次数,下面的答案是方便的

下面一个是最近5次提交的计数

Git diff $(Git log -5——pretty=format:"%h" | tail -1)——shortstat

获取最近10次提交的计数

Git diff $(Git log -10——pretty=format:"%h" | tail -1)——shortstat

generic -用你需要的最后提交数改变N

git diff $(git log -N——pretty=format:"%h" | tail -1)——shortstat

获取自启动以来所有提交的计数

Git diff $(Git log——pretty=format:"%h" | tail -1)——shortstat

git diff --shortstat

给出修改和添加的行数。这只适用于未分阶段的更改。与树枝比较:

git diff --shortstat some-branch

假设你想比较abcd123(第一次提交)和wxyz789(最后一次提交)之间的所有提交,包括:

git log wxyz789^..abcd123 --oneline --shortstat --author="Mike Surname"

这将给出如下简洁的输出:

abcd123 Made things better
 3 files changed, 14 insertions(+), 159 deletions(-)
wxyz789 Made things more betterer
 26 files changed, 53 insertions(+), 58 deletions(-)
git log --numstat 

只给你数字

如果你想检查两个分支或提交之间插入、删除和提交的数量。

使用提交id:

git log <commit-id>..<commit-id> --numstat --pretty="%H" --author="<author-name>" | awk 'NF==3 {added+=$1; deleted+=$2} NF==1 {commit++} END {printf("total lines added: +%d\ntotal lines deleted: -%d\ntotal commits: %d\n", added, deleted, commit)}'

使用分支:

git log <parent-branch>..<child-branch> --numstat --pretty="%H" --author="<author-name>" | awk 'NF==3 {added+=$1; deleted+=$2} NF==1 {commit++} END {printf("total lines added: +%d\ntotal lines deleted: -%d\ntotal commits: %d\n", added, deleted, commit)}'