Избавление от «предупреждения: CRLF будет заменен на LF», если для core.safecrlf значение false не работает - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь git bisect кодовую базу, чтобы найти источник проблемы.

При проверке более старых версий, файл изменяется из-за проблем с eol:

$ git status
HEAD detached at v1.9.3
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   ports/stm32/usbdev/Release_Notes.html

Из-за этого изменения git bisect застревает:

error: Your local changes to the following files would be overwritten by checkout:
        ports/stm32/usbdev/Release_Notes.html
Aborting

Я работаю с историческими коммитами в исходной кодовой базе, поэтому не могу изменить .gitattributes, не могу изменить файл и перебазировать все.

Я пытался установить core.safecrlf в false в этом хранилище:

git config core.safecrlf false

... но это, похоже, не оказало никакого влияния на эту проблему.Есть ли способ переопределить поведение Git по отношению к этому файлу без изменения файлов в самом хранилище?

1 Ответ

0 голосов
/ 12 октября 2018

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

git bisect good

(или то же самое с bad) вы получили эту жалобу о ports/stm32/usbdev/Release_Notes.html.Итак:

rm ports/stm32/usbdev/Release_Notes.html
git bisect good  # or bad

Git теперь может свободно переключаться на следующий коммит для тестирования.

Не удаляйте вслепую все файлы, так как git checkout следующего коммита не извлечь файлы, которые совпадают в текущем и следующем коммите.Bisect действительно должен иметь способ передать -f на шаг git checkout, чтобы обработать случай, когда git reset --hard HEAD все еще оставляет измененные файлы из-за проблем конца строки.Хорошо, это, или Git должен иметь более общий метод работы с "файлом в репозитории, который никогда не может соответствовать рабочему дереву из-за проблем конца строки".

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