Что означает MM в git show --raw для вывода коммитов слияния? - PullRequest
2 голосов
/ 27 марта 2011

Я смотрю на вывод команды git show --numstat --shortstat --raw --pretty=medium -p и вижу, что для коммитов слияния вывод отличается.Вот что я получаю:

commit cec68e2b00d86357c18b576cbaed52cc1ea42a74
Merge: b2ea79c e4900df
Author: jeresig <jeresig@gmail.com>
Date:   Thu Dec 9 12:44:30 2010 -0500

    Merge branch 'bug5566' of https://github.com/csnover/jquery into csnover-bug5566

16      16      src/manipulation.js
76      56      test/unit/manipulation.js
::100644 100644 100644 e09dd7e... c592b7a... 8d951b6... MM      src/manipulation.js
::100644 100644 100644 4805016... 8ee3688... 23ed898... MM      test/unit/manipulation.js

Почему нет различий и что означает MM?Я не видел этот модификатор раньше.

1 Ответ

3 голосов
/ 28 марта 2011

Нет информации о разнице, потому что --raw подавляет этот вывод.(По общему признанию это не очевидно из документации.)

«Необработанный» вывод задокументирован на справочной странице git diff-tree, в разделах Формат вывода в формате и diffФормат для слияний .В вашем примере есть два M, потому что это коммит слияния с двумя родителями.Чтобы взглянуть на этот пример более подробно:

::100644 100644 100644 e09dd7e... c592b7a... 8d951b6... MM src/manipulation.js

... три режима файла (100644 100644 100644) дают вам режим файла в первом родительском, втором родительском и этом коммите.Аналогично, следующие три поля (e09dd7e... c592b7a... 8d951b6..) дают вам имена объектов большого двоичного объекта, представляющего содержимое этого файла в первом родительском элементе, втором родительском элементе и коммите слияния.MM - это два поля «оценки», указывающие, что этот файл был изменен по отношению к родителю 1, а также по отношению к родителю 2.

...