Если немного проще: есть один проект в котором верстальщику нельзя давать код бекэнда, а то еще понравиться и себе скопирует.
Если вы не хотите давать код, то вы не хотите давать репозиторий. Чтобы работать, верстальщику понадобится локальная копия репы. Раз у него будет такая копия, захочет - вытащит файлы. Гит делает слепок всего дерева целиком, поэтому в принципе невозможно надежно ограничить доступ к содержимому файлов в других папках.
Делайте две разные репы для фронта и бэка, вы привыкнете и вам понравится.
но может есть лучше решение.
Это и есть самое нормальное решение. Даже если бы не стоял вопрос разграничения доступа, это также было бы удобно с точки зрения деплоя. Раз вы говорите о фронте и бэке отдельно, значит вам удобно их отдельно разрабатывать, а раз удобно отдельно разрабатывать - то вероятно будет удобно и отдельно релизить. А это - прямой сигнал к разделению на разные репы.
P.S. Посмотрел ваш скрин, странно много папок вне frontend и backend, что вы в них держите?)