Gemfile
- это то, что вы изменяете для добавления / удаления / обновления драгоценных камней (или только версий драгоценных камней), работающих в вашем приложении. Gemfile.lock
- это файл, который автоматически обновляется компоновщиком. На самом деле, вы не должны пытаться вручную обновить Gemfile.lock
: во-первых, потому что он автоматически сгенерирован, а во-вторых, он не предназначен для изменения вручную, и вы можете запутать упаковщик, если вы измените его самостоятельно.
Чтобы ответить на ваш список:
bundle install
устанавливает все новые / обновленные гемы и зависимости - но если они уже установлены, ничего не делается
bundle update
пробежит по вашим установленным гемам и получит самые новые, разрешенные версии, как определено в вашем Gemfile
gem install my_gem.gem
обходит компоновщик и устанавливает гем на системном уровне (т. Е. Вне пакета кода вашего приложения)
gem update my_gem.gem
обходит компоновщик и обновляет гем на системном уровне (т. Е. Вне пакета кода вашего приложения)
Итак, один набор команд устанавливает (если еще не установлен), один набор команд обновляет до последних версий уже установленные гемы, один набор команд выполняет эти действия только в рамках вашего приложения (код вашего приложения) bundle), и один набор команд выполняет эти действия на системном уровне.
Git не имеет отношения к вашему вопросу здесь.