Недавно я взял ветку с множеством коммитов и объединил ее в свою главную ветку. Если мне нужно было вернуться и посмотреть, сколько строк было добавлено или удалено из-за этого слияния, как бы я это сделал?
Вычисление итоговых строк, добавленных/удаленных после слияния?
Ответ 1
git diff
имеет параметр --shortstat
, который был бы полезен до слияния, как вы могли бы просто сделать git diff --shortstat ..branch/to/merge
из своей основной ветки.
Если слияние не было быстрой перемоткой вперед, тогда вы должны сгенерировать слияние. Это будет иметь родительскую информацию для обеих ветвей. Вы можете использовать те, которые должны выполнить git diff --shortstat parent1..mergecommit
, чтобы показать, какие изменения произошли при переходе от первого родителя (основной ветки) к результату слияния.
Если слияние было быстрой перемоткой вперед, вам просто нужно знать, что такое sha1 вашей ветки перед слиянием и сравнить с текущим. Вероятно, вы можете получить это из git reflog
.
Ответ 2
git diff --shortstat commit1 commit2
должен предоставить вам то, что вы хотите:
git diff --shortstat 8fcb60bebc18b9ee4a5a0a86d41e8ecf954b8c99 0214060c21f31f9b54446dde6b6e48901e6a144d
5 files changed, 182 insertions(+), 225 deletions(-)
Подробнее см. git трюки:
--shortstat
Вывести только последнюю строку формата
--stat
, содержащую общее количество измененных файлов, а также количество добавленных и удаленных строк.
Примечание:
Вы даже можете использовать его для вычисления ежедневной активности
Ответ 3
Используйте утилиту diff для сравнения основной версии ветвления файла до и после слияния.
WinMerge (если вы используете Windows) будет хорошим.
Ответ 4
^
(carat) получает родительский rev, поэтому вы можете:
git diff --shortstat abc123^ abc123