Какова цель "Gemfile.lock" в Rails? Я искал вокруг, но не смог найти удовлетворительного ответа.
Использование Gemfile.lock в Rails?
Ответ 1
Вы должны прочитать всю документацию из bundler
gem: http://gembundler.com/
THE GEMFILE.LOCK
Когда вы запускаете установку пакета, Bundler сохранит полные имена и версии всех драгоценных камней, которые вы использовали (включая зависимости драгоценных камней указанный в Gemfile (5)) в файл Gemfile.lock.
Bundler использует этот файл во всех последующих вызовах для установки пакета, который гарантирует, что вы всегда используете один и тот же точный код, даже если ваш приложение перемещается по машинам.
Из-за того, как работает разрешение зависимостей, даже кажущаяся маленькой изменить (например, обновление до точечного релиза зависимости драгоценный камень в вашем Gemfile (5)) может привести к радикально отличным камням необходимо для удовлетворения всех зависимостей.
В результате вы ДОЛЖНЫ проверить ваш Gemfile.lock на управление версиями. Если вы этого не сделаете, каждая машина, которая проверяет ваш репозиторий (включая ваш производственный сервер) разрешит все зависимости снова, что приведет к разным версиям стороннего кода используется, если какой-либо из драгоценных камней в Gemfile (5) или любой из их были обновлены зависимости.
Ответ 2
Gemfile.lock
гарантирует, что другие разработчики в вашем приложении, а также в среде развертывания будут использовать тот же самый сторонний код, который вы только что установили.