2010-01-19 3 views
11

Недавно я взял ветку с множеством коммитов и объединил ее обратно в свою главную ветку. Если мне нужно было вернуться и посмотреть, сколько строк было добавлено или удалено из-за этого слияния, как бы я это сделал?Вычисление общих строк, добавленных/удаленных после слияния?

ответ

16

git diff имеет --shortstat вариант, который был бы полезен перед слиянием, как и тогда вы могли бы просто сделано git diff --shortstat ..branch/to/merge от вашего основного филиала.

Если слияние не было быстрой перемоткой вперед, вы получите слияние. Это будет иметь родительскую информацию для обеих ветвей. Вы можете использовать их для выполнения git diff --shortstat parent1..mergecommit, чтобы показать, какие изменения произошли при переходе от первого родителя (основной ветки) к результату слияния.

Если слияние было быстрой перемоткой вперед, вам просто нужно знать, что такое sha1 вашей ветки перед слиянием и сравнить с текущим. Вероятно, вы можете получить это от git reflog.

1

Используйте утилиту diff, чтобы сравнить версию основной ветви файла до и после слияния.

WinMerge (если вы используете Windows) был бы полезен.

13
git diff --shortstat commit1 commit2 

должен дать вам то, что вы хотите:

git diff --shortstat 8fcb60bebc18b9ee4a5a0a86d41e8ecf954b8c99 0214060c21f31f9b54446dde6b6e48901e6a144d 
5 files changed, 182 insertions(+), 225 deletions(-) 

См git tricks для получения дополнительной информации:

--shortstat 

Выход только последнюю строку формата --stat, содержащий общее количество модифицированного файлы, а также количество добавленных и удаленных строк.


Примечание:
Вы можете даже использовать его для вычисления некоторых daily activity

https://jbowes.files.wordpress.com/2008/05/screenshot-git-graphpl.png?w=490&h=342

1

^ (в каратах) получают вас родительские обороты, так что вы могли бы:

git diff --shortstat abc123^ abc123

Смежные вопросы