Конфликты в Gemfile.lock при перебазировании - PullRequest
29 голосов
/ 04 сентября 2011

Какие стратегии используют люди для разрешения конфликтов Gemfile.lock при перебазировании в Git?

Мне приходится много делать в недавнем проекте, и это не только утомительно, но и не всегда понятно, как сделать слияние.

Ответы [ 3 ]

23 голосов
/ 04 сентября 2011

вы можете разблокировать его при каждом слиянии, через драйвер слияния (который я обычно использую для , всегда сохраняя локальную версию файла во время слияния ).

См. " Auto Merge Gemfile.lock " из Will Leinweber :

Все, что вам нужно сделать, это запустить bundle lock (устарел в Rail3) bundle install, чтобы получить bundler для блокировки, затем добавить его и продолжить перебазирование.

Сначала ваш ~/.gitconfig файл.
Здесь мы собираемся дать ему новую стратегию слияния, которая будет просто блокировать гемфайл.
Добавьте это в конец:

[merge "gemfilelock"]
  name = relocks the gemfile.lock
  driver = bundle install

Далее, мы должны сказать git использовать нашу новую стратегию для Gemfile.lock, и мы сделаем это с gitattributes.
Вы можете поместить это в project/.git/info/attributes или project/.gitattributes.

Gemfile.lock merge=gemfilelock
4 голосов
/ 05 октября 2013

Используйте git log Gemfile.lock, чтобы найти хэш предыдущего коммита.Затем запустите git checkout abcde Gemfile.lock, чтобы вернуться назад.Ваша команда bundle install должна работать после этого.

1 голос
/ 18 января 2014

Вы можете использовать этот скрипт для автоматической настройки git-репозитория для использования упомянутой стратегии разрешения слияний: https://gist.github.com/itspriddle/5548930

В качестве альтернативы, вы можете использовать подключение tpope, чтобы сделать это (и запустить миграцию базы данных) автоматически после извлечения git: https://github.com/tpope/hookup

...