В ветвях git есть только указатели для фиксации
В вашем случае вам просто нужно сделать:
git checkout branch1
git merge branch2
Он будет сливаться без коммитов слияния (оптимизацияby git) если вы не сделали ничего нового для branch1.
В нормальном сценарии git всегда должен создавать коммит слияния.Но в этом особом случае, когда родительская ветвь не делала никаких коммитов с момента создания дочерней ветки, она просто обновляет ссылку.
E---F branch2
/
A---B---C---D branch1
После слияния:
E---F branch1/branch2
/
A---B---C---D
Incase здесь вы хотите иметькоммит слияния, поэтому слияния с опцией --no-ff.
git checkout branch1
git merge --no-ff branch2
Если у вас был новый коммит после создания новой ветки, создание коммит слияния неизбежно.Скажем, пример:
E---F branch2
/
A---B---C---D ----G branch1
Итак, коммит слияния спасает только здесь:
E--------F branch2
/ \
A---B---C---D ----G-----H(merge commit)
branch1
В вышеприведенном случае формируется новый коммит слияния и ветвь1 обновляется со ссылкой.