Что делать с vendor при переключении веток?
Сделать несколько папок vendor_branchname, а вместо папки vendor симлинк на одну из них.

При переключении ветки менять симлинк. Это можно автоматизировать, написав хук на post-checkout, например.
если координально отличаются ветки например master и develop
то создать два сайта master.site.loc и develop.site.loc
и вести разработку паралельно