Слить A внутри B:
1) В проекте A
git fast-export --all --date-order > /tmp/ProjectAExport
2) В проекте B
git checkout -b projectA
git fast-import --force < /tmp/ProjectAExport
В эта ветка выполняет все операции, которые вам нужно выполнить и совершать их.
C) Затем вернитесь к мастеру и классическому объединению между двумя ветвями:
git checkout master
git merge projectA
Google первый хит кажется довольно всесторонним.
Я думаю, что проблема здесь существует слишком много защитников одного или другого, может быть лучше из поиска с помощью Google и получения большего количества дескриптора pro's/con's самостоятельно и принятие Вашего собственного решения.
Я знаю, что вид звуков Ламе, но в конечном счете подобные проектные решения падают разработчику/архитектору, работающему над ним, и 99% времени, проблемная область, будет решающим фактором (или по крайней мере это должно быть), не руководство по сети.