2015-12-08 7 views
0

У меня есть филиал A, и я хочу, чтобы объединить ветви B в A.Git объединить ВЕСЬ ФИЛИАЛ

когда я сливаю ветвь В в А он только сливает последний коммит сделать, чтобы ветви В в А, я хочу, чтобы объединить вся ветка, я попытался перезагрузить и после каждого ответа на этом сайте, но ничего не работает.

+1

, пожалуйста, проверьте, что совершает бит B еще не в A: 'git log B - not A'. – user3159253

+1

Я предполагаю, что будет ровно один несвязанный коммит. – user3159253

+0

Ничто не возвращается этой командой, в соответствии с объединением ветви не имеют различий, хотя вытягивание A возвращает другой код, когда я тяну B –

ответ

1

В git ветка в основном указатель на фиксацию. Так что ваш филиал B является указателем на последний коммит в ветке В.

Когда вы git merge branchB на ветви А, мерзавец собирается выбрать этот последний коммит плюс все его предки, которые не были уже на ветви А. Так слияние уже «слияние всей ветви».

Вы можете видеть это, если слияние преуспело, сделав потом git diff HEAD^1 HEAD. Это должно показать вам все модификации, применяемые к ветви B.

Что может вас смутить, так это отображение git log: оно отображает слияние, чьи родители являются кончиками ветви A и концом ветви B. Это на самом деле то, что git merge: о попытке создать фиксацию от двух разных родителей.

+0

Но когда я объединил B в AI, тогда предположим, что все файлы на B должны присутствовать на A, но это не так. –

+1

Это довольно странно, они должны. Вы уверены, что: 1) слияние удалось? 2) новые файлы были совершены на ветке B? Разве они еще не отслеживаются? – oailloud

+0

Я не могу комментировать ваш вопрос ... Не уверен, что вы подразумеваете под «когда я тяну B». Я подумал, что, может быть, вы перепутались между удаленной веткой и ее локальной версией ('git branch -avv', чтобы проверить это). – oailloud

Смежные вопросы