Предназначение файла composer.lock - записать в него непосредственно те версии, которые были установлены (их точные идентификаторы, а не просто допустимые диапазоны, которые можно как в composer.json) -скачены при установке или обновлении пакетов.
Добавление файла composer.lock в репозиторий (под контроль версий)
Если добавить его в репозиторий (что делают не всегда), то команда
composer install
будет все равно устанавливать версии не выше тех, что записаны первый раз в composer.lock