Как и где хранить общие файлы?
По моему git submodule самое то оно.
Создаёте 3 реп. туда общие файлы. И в каждый реп добавляете субмодуль. По мере обновления синхронизируете субмодули!

Чем хорошо субмодуль? Тем что, вы можете "взять" слепок основного репа и субмодуля. При этом вести активную работу на всех трех. Ну и естественно использовать ветвление: всё что уходит в деплой берёте строго с веток релиз (например). + правильно здесь использовать теги. Особенно у субмодуля. Т.е. забирать с субмодуля не по камиту, а по тегу.
Удачи!
1. а что за общие файлы?
2. сделать для общих файлов третий репозиторий и коммитить туда
3. гит сабмодули наверное не самое лучшее решение. Но надо понять что за файлы.