git: прерывание pull из-за файла Gemfile.lock, который будет перезаписан, даже если он находится в файле .gitignore - PullRequest
2 голосов
/ 04 марта 2011

Я тяну свой проект с помощью git.

Я получаю эту ошибку: error: Your local changes to 'Gemfile.lock' would be overwritten by merge. Aborting..

Но 'Gemfile.lock' находится в моем файле .gitignore, поэтому git не должензаинтересованы в перезаписи этого файла.

Любая помощь?

Привет, Джерн.

Ответы [ 2 ]

0 голосов
/ 01 мая 2011

Gemfile.lock должен был быть частью хранилища, иначе git не пожаловался бы на это.

0 голосов
/ 04 марта 2011

Когда файл игнорируется git, он просто исключается, когда вы выполняете рекурсив git add. Но git никогда не будет перезаписывать файл в хранилище, если он не отслеживается (принцип наименьшего удивления). Игнорируемый файл может быть дорогим (время, ...) для генерации.

Однако, даже если файл игнорируется, кто-то может зафиксировать файл с тем же именем (либо с помощью git add -f, либо потому, что он изменил файл .gitignore в той же фиксации).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...