Не удалось нормализовать окончание строк для Git в проекте Visual Studio

Проблема: Git интерпретирует весь файл С#, измененный после сохранения изменений файла локально. Это указывает на то, что окончание строк изменилось, хотя они были проверены как завершающие CRLF и сохранены локально с окончанием строки CRLF.

Я работаю над проектом Visual Studio на своей работе, у которого есть несколько участников. Я использую Visual Studio 2012. В течение последних двух дней у меня с другим коллегой был опыт вышеупомянутой проблемы после клонирования репо с нашего корпоративного сайта Stash. Мы не можем зафиксировать наши изменения, потому что Git указывает, что весь файл был изменен, а некоторые из наших файлов - тысячи строк. Здесь больше контекста вокруг симптомов:

  • Проблема возникает только в некоторых файлах, а не во всех.
  • Проблема не специфична для Visual Studio. Я редактировал файл в IntelliJ и Notepad ++ и испытывал ту же проблему.
  • После изменения файла у меня есть крайняя трудность, отбрасывающая изменения и проверка файла из репо. Я попытался выполнить несколько команд, которые должны reset выполнить локальное репо. Иногда они работают, и я привязан к происхождению, иногда они этого не делают. Единственное согласованное решение - проверить новую ветку, зафиксировать там изменения и вернуться к целевой ветке. Я пробовал следующие методы, чтобы отменить изменения:

    git checkout -- 
    git reset --hard
    git reset HEAD
    git stash

Вот список шагов, которые я предпринял для устранения проблемы:

  • Нормализация строки заканчивается, как описано здесь
  • Изменение моей конфигурации Git на autocrlf=true и autocrlf=false. Это описано здесь. Проблема остается в обеих настройках
  • Изменение параметров .gitattributes в проекте. Ниже приведены мои текущие настройки, которые соответствуют примеру, приведенному в ссылке выше

    * text=auto
    *.cs text
  • Удаление и переустановка Git (дважды)

Ничего, что я сделал до сих пор, не исправил проблему. Моя догадка в том, что она связана с настройками в файле .gitattributes. Однако никто, включая основного разработчика проекта, не сталкивался с этими проблемами при клонировании репо. Я был бы очень признателен за любые предложения. Спасибо!

Ответы

Ответ 1

У меня была та же проблема и прокомментировал строку

* text=auto

в .gitattributes.

Это решило мою проблему. Надеюсь, это поможет вам или кому-либо еще с той же проблемой.

Из того, что я понимаю, строка * text=auto должна помочь с концами строк, но по какой-то причине у группы людей, работающих под Windows, есть проблема с ней.