Какие стратегии используют люди для разрешения конфликтов Gemfile.lock при перебазировании в Git?
Мне приходится много делать в недавнем проекте, и это не только утомительно, но и не всегда понятно, как сделать слияние.
вы можете разблокировать его при каждом слиянии, через драйвер слияния (который я обычно использую для , всегда сохраняя локальную версию файла во время слияния ).
См. " Auto Merge Gemfile.lock " из Will Leinweber :
Все, что вам нужно сделать, это запустить bundle lock (устарел в Rail3) bundle install, чтобы получить bundler для блокировки, затем добавить его и продолжить перебазирование. Сначала ваш ~/.gitconfig файл. Здесь мы собираемся дать ему новую стратегию слияния, которая будет просто блокировать гемфайл. Добавьте это в конец:
Все, что вам нужно сделать, это запустить bundle lock (устарел в Rail3) bundle install, чтобы получить bundler для блокировки, затем добавить его и продолжить перебазирование.
bundle lock
bundle install
bundler
Сначала ваш ~/.gitconfig файл. Здесь мы собираемся дать ему новую стратегию слияния, которая будет просто блокировать гемфайл. Добавьте это в конец:
~/.gitconfig
[merge "gemfilelock"] name = relocks the gemfile.lock driver = bundle install
Далее, мы должны сказать git использовать нашу новую стратегию для Gemfile.lock, и мы сделаем это с gitattributes. Вы можете поместить это в project/.git/info/attributes или project/.gitattributes.
Gemfile.lock
gitattributes
project/.git/info/attributes
project/.gitattributes
Gemfile.lock merge=gemfilelock
Используйте git log Gemfile.lock, чтобы найти хэш предыдущего коммита.Затем запустите git checkout abcde Gemfile.lock, чтобы вернуться назад.Ваша команда bundle install должна работать после этого.
git log Gemfile.lock
git checkout abcde Gemfile.lock
Вы можете использовать этот скрипт для автоматической настройки git-репозитория для использования упомянутой стратегии разрешения слияний: https://gist.github.com/itspriddle/5548930
В качестве альтернативы, вы можете использовать подключение tpope, чтобы сделать это (и запустить миграцию базы данных) автоматически после извлечения git: https://github.com/tpope/hookup