Хотя многие люди рекомендуют использовать функциональные ветви, это едва ли не единственный широко используемый метод. Вы должны знать, что оно существует, но не связывайтесь с ним, если есть веские причины, почему что-то еще может быть лучше.
Я не полностью слежу за вопросом о папке веток vhost / git. Есть несколько способов использования git с веб-сайтами. У вас может быть git-репо для каждого vhost, у вас могут быть разные подкаталоги git-репо, являющиеся разными vhosts, и да, вы можете иметь разные ветви для разных vhosts.
Я бы сказал, что последнее довольно редко. Только если есть большое сходство с vhosts, где вы можете захотеть объединяться между vhosts (или из какой-то основной ветки «шаблона» к каждому vhost по очереди), могут иметь смысл различные ветви. Конечно, вы могли бы также сделать один и тот же шаблон с несколькими репозиториями, где шаблон был удаленным, и люди могли извлекать его и объединять. Использование системы мета-репозитория, такой как gitslave (или, в меньшей степени, git-submodules), может помочь автоматизировать объединение всех пользователей из общего источника.