То же, что и ответ Адама , но с использованием индекса и без вырезки:
sub="path/to/submodule"
git --git-dir="$sub/.git" diff \
$(git rev-parse ":2:$sub") \
$(git rev-parse ":3:$sub")
Объяснение:
При возникновении конфликта Git сохраняет информацию о немв указателе.Здесь хранятся несколько разных версий, так называемые этапы.Стадия 1 - это «базовая» версия (общий предок), стадия 2 - «наша», а стадия 3 - «их».
В случае конфликтов файлов в индексе содержатся идентификаторы объектов BLOB-объектов.для разных версий.В случае субмодулей это идентификаторы фиксации субмодуля.В приведенной выше команде :2:$sub
относится к этапу 2
(нашему) подмодуля по пути $sub
.
Обратите внимание, что вы можете увидеть список записей индекса с этапами, используя git ls-files --stage
.