Проблема с отладкой Git в Windows (MsysGit)

У меня периодически возникает проблема с 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, а не моей системы, чтобы я мог сообщить об этом как об ошибке.

Асинхронная передача данных с помощью sendBeacon в JavaScript
Асинхронная передача данных с помощью sendBeacon в JavaScript
В современных веб-приложениях отправка данных из JavaScript на стороне клиента на сервер является распространенной задачей. Одним из популярных...
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Как подобрать выигрышные акции с помощью анализа и визуализации на Python
Отказ от ответственности: Эта статья предназначена только для демонстрации и не должна использоваться в качестве инвестиционного совета.
Принципы ООП в JavaScript
Принципы ООП в JavaScript
Парадигма объектно-ориентированного программирования имеет 4 основных принципа,
Пройдите собеседование по Angular: Общие вопросы и ответы экспертов
Пройдите собеседование по Angular: Общие вопросы и ответы экспертов
Можете ли вы объяснить разницу между ngOnInit и конструктором в Angular?
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
4
0
966
3

Ответы 3

У вас могут возникнуть проблемы с окончанием строки, если вы не справились с этим ни в текстовом редакторе, ни в конфигурации 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 настройка преобразования вкладок в пробелы - Инструменты -> Параметры -> Текстовый редактор -> -> Вкладки, где вы выбираете переключатель в нижней части окна.

Другие вопросы по теме