Объединить в обе стороны:
git checkout B1
git merge B2
git checkout B2
git merge B1
В этот момент B1
пропустит только последний коммит слияния, но их код будет таким же.
В качестве альтернативы, вы могли бы также просто объедините один, затем переместите другой ref:
git checkout B1
git merge B2
git branch -f B2 B1
, но учтите, что это переписало бы историю B2
, поэтому, если вы уже поделились ею (отправлено на удаленный сервер, на котором кто-то его извлек) иначе) это может быть неудобный процесс, go для первого метода.