Не удалось нормализовать окончание строк для 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, есть проблема с ней.