计算 git 分支与 master 的差异有多大?

Calculate how different a git branch is from master?

我想通知/警告某个项目的开发人员,如果他们正在处理与当前主分支有很大差异的 git 分支。

计算分支末端与主分支末端差异程度的最简单方法是什么?

我正在考虑检查自上次分歧以来两个分支上的提交数量,并在该数量大于某个阈值(例如 10 次提交)时通知开发人员。如果 运行 作为提交挂钩,此命令是否适用于此目的?

git log --oneline master...test/countcommitdifference | wc -l
>      3

(我的团队使用 git、SourceTree 和 BitBucket。)

这可行,但对于脚本,建议改用 git rev-list

git rev-list master...your_branch | wc -l

或评论中提到的@jthill,只需git rev-list --count master...your_branch

(这将为您提供 master 上的提交数 加上 上 your_branch 上的提交数。

另一种选择可能是使用 git diff --shortstat,它会显示更改的文件数、插入和删除的行数。第一个数字始终是更改的文件数:

git diff --short-stat master your_branch | awk '{print }'