У меня периодически возникает проблема с git в Windows (я запускаю MSysGit из пакета Git-1.6.0.2-preview20080923.exe, я также пробовал с Git-1.5.6.1-preview20080701.exe, и результаты такие же ).
Бывает очень неприятно, что некоторые файлы отображаются как измененные, когда я их не менял, а в git-gui это показывает, что удаленный контент такой же, как добавленный контент (обычно это весь файл), то есть - This line was here before
- This line was here before as well
- and this line too...
+ This line was here before
+ This line was here before as well
+ and this line too...
Я пробовал с git checkout -f
и git reset --hard
, но файлы остались прежними. Я также пытался удалить файлы до аппаратного сброса.
Я попробовал поискать в Google, но не нашел ничего похожего.
Не могли бы вы рассказать мне, как разобраться в этом, или какие шаги вы бы предприняли, чтобы подтвердить, что это проблема Git, а не моей системы, чтобы я мог сообщить об этом как об ошибке.
У вас могут возникнуть проблемы с окончанием строки, если вы не справились с этим ни в текстовом редакторе, ни в конфигурации Git.
Чтобы решить эту проблему в Git, установите параметр autocrlf в файле конфигурации Git:
$ git config --global core.autocrlf true
Это заставляет git преобразовывать символы новой строки в стандарт системы при извлечении файлов и в LF новые строки при фиксации. Затем вам нужно будет получить новую рабочую копию, которая отфильтрует окончания строк в соответствии с настройкой autocrlf.
$ git reset --hard HEAD
$ git commit -a
Это фиксирует любые файлы, которые были изменены путем стандартизации окончаний строк, поэтому теперь ваше репо согласовано, и вы не будете создавать больше проблем с окончанием строки.
Если вы используете Visual Studio, вероятно, Visual Studio преобразует табуляции в пробелы (# @% $ #). Вы можете отключить эту «функцию» где-нибудь в настройках Visual Studio. Вы также можете настроить git так, чтобы он не проверял изменения пробелов, но я не могу этого рекомендовать.
Приведенное выше предложение о настройке autocrlf может работать, но по умолчанию в используемой вами версии Git установлено значение true.
В VS2008 настройка преобразования вкладок в пробелы - Инструменты -> Параметры -> Текстовый редактор -> -> Вкладки, где вы выбираете переключатель в нижней части окна.