Важно понимать, что git diff A B
состоит в том, что он только показывает разницу между состояниями дерева между двумя точками в графе фиксации - его не волнует история. Обозначения ..
и ...
, используемые для git diff
, имеют следующие значения:
Поэтому, когда вы запускаете git diff master feature
, это не просто показывает изменение, внесенное коммитом, который вы пометили как 2
- выходные данные должны показать точные различия между состоянием дерева, зафиксированного в master
, и состояние дерева совершено в feature
. Если он не показывает более ранние изменения в вашей ветви функций, возможно, вы разрешили конфликты из предыдущих слияний master в пользу версии в master
?
Как говорит cebewee , возможно, вы хотите git log -p master..feature
, поскольку git log
заботится об истории. Значение ..
и ...
для git log
различно, так как они выбирают диапазон коммитов:
Между прочим, часто говорят, что объединение из master
в ветку темы - это неправильная вещь - вместо этого вам следует выполнить ребазинг или объединить ветку темы в master
после ее завершения. Это позволяет легко понять смысл ветки темы. Сопровождающий git написал (несколько трудно понять) сообщение в блоге о философии слияния , в которой это обсуждается.