Необходимо вынести общие компоненты (шаблоны кнопок, частей страниц и страниц целиком) в отдельный репозиторий, чтобы переиспользовать их во всех проектах.
Как использовать эти файлы во всех проектах? Создать поддиректорию и связать её с этим общим репозиторием? Создать npm-пакет? Как это сделать?
NPM-пакеты. Хранить пакеты в собственном репозитории, например, Sonatype Nexus, версионировать их.
Разработчики могут вносить изменения в общие компоненты, создавать новые. Чтобы изменения не ломали другие проекты, необходимо организовать проверку изменений, быть может пулл-реквесы и их проверку. Как это сделать?
Используйте, например, Gitlab CE и MergeRequest. Запретите пушить напрямую в master. Попробуйте в работе придерживаться какой-либо модели ветвления, напр. Gitflow, если требуется обязательный review.
Так же, используя, напр. GitlabCI можно упростить себе жизнь, настроив автосборку слитых MR для ваших компонентов