В git ветка в основном указатель на фиксацию. Так что ваш филиал B является указателем на последний коммит в ветке В.
Когда вы git merge branchB
на ветви А, мерзавец собирается выбрать этот последний коммит плюс все его предки, которые не были уже на ветви А. Так слияние уже «слияние всей ветви».
Вы можете видеть это, если слияние преуспело, сделав потом git diff HEAD^1 HEAD
. Это должно показать вам все модификации, применяемые к ветви B.
Что может вас смутить, так это отображение git log
: оно отображает слияние, чьи родители являются кончиками ветви A и концом ветви B. Это на самом деле то, что git merge: о попытке создать фиксацию от двух разных родителей.
, пожалуйста, проверьте, что совершает бит B еще не в A: 'git log B - not A'. – user3159253
Я предполагаю, что будет ровно один несвязанный коммит. – user3159253
Ничто не возвращается этой командой, в соответствии с объединением ветви не имеют различий, хотя вытягивание A возвращает другой код, когда я тяну B –