Использование Composer и Git в своём проекте
Вы не волнуйтесь, фиксация версий будет, вот примерный принцип работы:
Когда делаете «composer.phar update», из репозиториев затягиваются самые последние изменения, а в composer.lock записываются их версии.
Важно composer.lock положить в гит своего проекта. 
В случае новой инсталляции проекта, нужно запустить «composer.phar install», тогда установятся именно те версии которые у нас зафиксированы в composer.lock
Обычно подразумевается, что через composer устанавливаются внешние зависимости. Хранить их в своем репозитории смысла никакого нет. 

P.S. Но я задумался над вашем вопросом… 
Мало ли какие требования могут быть у проекта, если найду ответ, отпишу.