Как смерджить файлы, если в ветках разная вложенность каталогов?
Правильно – не делать ветки с различной структурой. Впервые слышу чтобы так делали.
Докерфайл можно перенести в основную ветку и сконфигурировать так, чтобы он работал с иерархий проекта основной ветки.
Используйте подмодули.
https://git-scm.com/book/ru/v2/%D0%98%D0%BD%D1%81%...