Подтвердить что ты не робот

Проблемы с 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, но достаточно скоро все это снова начинает происходить.

4b9b3361

Ответ 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-ночная (с интеграцией с оболочкой)