Как я могу подсчитать количество фиксаций между двумя ветвями?

Использование git diff --shortstat my_branch master - отличный способ рассказать, сколько файлов изменяется, а также вставки и удаления. Я прочитал git diff documentation, но не смог найти способ сообщить количество коммитов между my_branch и master, Это существует?

Ответ 1

Я думаю, вы могли бы попробовать:

git log --online mybranch ^ master

Для точного подсчета:

git log --online mybranch ^ master | wc -l

Должна предоставить вам необходимую информацию.

Ответ 2

Я нашел это намного проще:

git rev-list --count my-branch ^master

Ответ 3

Другой вариант. Хеши/число - это просто примеры

$ git checkout my_branch
$ git cherry master

+ 950b187c4b28844680df7008cfa3b348c1a46016
+ 109e427cbe84c3c8fc0ac2fbfb5120bcc2511933
+ 9bc217c0bcabbd6aa4ba88bbaaad23805994f90d
+ 74e054614a1bb1c442fbcf53926dcb910097321c
+ b34ae1ce8a58e0cbdbe1657ebca81a3036d7c72d

Дает список хэшей фиксации, которые находятся в my_branch, но не в master

$ git checkout my_branch
$ git cherry master | wc -l
5

Дает количество коммитов, которые находятся в my_branch, но не в master

Подробнее о git cherry здесь

Ответ 4

Я не мог получить etech ответ на работу, но это работает для меня на OS X:

git rev-list --count master..my-branch

my-branch может быть опущен для изменений в текущей ветке.

Ответ 5

Это дает мне количество коммитов, которые я сделал для branch_being_merged_in, так как ветвление от branch_A:

git log --pretty =% H branch_A..branch_being_merged_in | wc -l