Проблемы с git и Gemfile.lock
Я всегда сталкиваюсь с следующей ошибкой с моим Gemfile.lock
всякий раз, когда хочу сделать git pull
или проверить новую ветку.
error: Your local changes to the following files would be overwritten by merge:
Gemfile.lock
Please, commit your changes or stash them before you can merge.
Aborting
Проблема в том, что я не могу понять, как ее исправить.
- Сбой файла не работает - локальные изменения просто остаются там по какой-то причине.
- Я также попытался запустить
git checkout -- Gemfile.lock
, чтобы отменить изменения, но это тоже не работает - локальные изменения остаются там.
- Я также попытался создать новую ветку и внести изменения
Gemfile.lock
только в эту ветку... но это тоже не сработает. Изменения остаются!
Что мне нужно сделать? Я дошел до того, что просто клонировал новый репозиторий git, но достаточно скоро все это снова начинает происходить.
Ответы
Ответ 1
Это случилось со мной, а git reset --hard HEAD
из принятого ответа не помогло. Однако запуск spring stop
сделал трюк. Я подозреваю, что spring переписывает файл всякий раз, когда он изменяется, чтобы убедиться, что он синхронизирован с кодом, запущенным через spring.
Ответ 2
После выполнения следующего, я смог снова и снова проверять ветки.
git checkout Gemfile.lock
git reset --hard HEAD
Я не уверен, почему и как это решение работает. Объяснения приветствуются.
Причина git заключалась в обнаружении Gemfile.lock как измененного в моем случае, заключалась в том, что в нижней части файла была BUNDLED WITH 1.10.3
. После обновления пакета gem update bundler
, регенерирующего и передающего Gemfile.lock, он перестает отображаться в git как измененный.
git версия 2.2.1, версия Mac OSX 10.10.4, iTerm2 Build 2.9.20150624-ночная (с интеграцией с оболочкой)