计算git分支与master有何不同?

问题描述

我想通知/警告项目开发人员是否正在使用git分支,该分支与当前的master分支相差很大。

计算分支的尖端与主分支的尖端有何不同的最简单方法是什么?

我正在考虑检查两个分支上次提交以来的提交数量,并通知开发人员该数量是否大于某个阈值(例如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

(这将为您提供在主上的提交数加上在your_branch上的提交数)。

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

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