Что вы сказали Git сделать в этом случае, так это взять new_feature
и перебазировать (переиграть) его поверх master
. Git показывает вам коммиты, которые будут помещены поверх master
.
В этом случае вы видите x1
- x4
, потому что они на new_feature
, но не на master
и вы сказали Git, что хотите воспроизвести все такие коммиты на master
. Вы не видите n6
, потому что он не будет перебазирован: он уже на мастере. Вам не хватает x5
, потому что git rebase
по умолчанию не воспроизводит слияния. В этом случае это имеет смысл, потому что слияние не вводит ничего нового.
Однако вы можете воссоздать слияние заново, если хотите, используя опцию --rebase-merges
для git rebase
;для этого требуется относительно недавняя версия Git.
Вы видите запись 714da58
, потому что Git может в конечном итоге использовать reflog в качестве основы для поиска лучшего общего предка;это задокументировано в опции --fork-point
. Это не всегда производит "логический" звучащий коммит, но обычно производит лучшую ребазу. Возможно, в какой-то момент ваша ветвь была на 714da58
, что также не является общим для обеих ветвей.