Git 中的提交次数错误?我做错了什么?

Wrong number of commits in Git? What do I do wrong?

几周前我开始了一个小项目,今天我想看看我在特定分支中所做的提交数。我有三个分支(master、develop 和 laravel-authentication)。我从 master 上的一些提交开始,切换到开发分支,进行了一些更改,然后我想用 laravel 开始身份验证。我创建了一个自己的分支,完成后将其合并回开发分支。现在,如果我查看我所做的提交数量,它还会显示我在开发和掌握方面所做的提交。

如果我查看图表,我可以清楚地看到我在 'laravel-authentication' 分支上进行了 7 次提交。但是它也显示了来自 master 和 develop 的提交。我放了一些 GitLab 和 GitKraken 的截图,这样你就明白我的意思了。

也许我只是不明白Git是如何工作的,但也许你们可以帮助我!

整棵树的小概览

如果我solo这个分支('laravel-authentication')

也在 GitLab 上,超过 7 次提交

Maybe I just don't understand how Git works, but maybe you guys can help me!

我认为是的,我希望是的。

假设分支 develop 中有 10 个提交。您从 develop 分支并创建一个名为 newbranch 的分支。 newbranch 有多少次提交?答案是 10(不是 0)。现在假设您将 7 次提交添加到 newbranch;它现在有 17 个提交。当您查看 newbranch 的历史记录时,您将看到那 17 次提交。 Git 并不关心其中的 10 个也在其他分支上。您在第一张图片中看到的视图很好地对其中一个分支上的 7 次提交进行了颜色编码,这只是它可以做到的一种便利,因为这些提交仅在您的分支上,没有其他地方。但是所有其他提交也在您的分支中。

关于您的评论:

My goal was to see only the commits made in the branch 'laravel-authentication'.

首先我认为我们不应该在那里使用“made”这个词,因为一旦你将一个分支合并到另一个分支,Git 不知道也不关心提交是在哪个分支上“made”的。

无论如何,第一张图片似乎已经为您提供了。从概念上讲,您想要的是查看您的分支上所有不在其他分支 TBD 上的提交。根据您比较的分支,提交次数很可能会有所不同。例如,从命令行你可以做这样的事情:

git log --pretty=oneline develop..laravel-authentication

这将隔离您分支上不在 develop 中的所有提交。

以及您在评论中的其他问题:

Why should I view the statistics of commits made in a branch, when commits from master and develop get counted too?

我不熟悉这些统计数据,但看起来这是分支上提交作者的细分。因此,在该分支上,有 17 个提交,全部由您完成,然后它显示您每天编写的平均和最大提交数。与任何其他分支相比,它似乎没有隔离提交;为此,它需要两个分支名称作为输入。