Почему «git reset HEAD» не отменит мои незафиксированные, неустановленные изменения?

Ранее я был в состоянии отменить изменения через SourceTree, выполнив функцию «Discard», которая под капотом производит следующую команду:

git -c diff.mnemonicprefix=false -c core.quotepath=false reset -q HEAD -- myproj.csproj 
git -c diff.mnemonicprefix=false -c core.quotepath=false checkout HEAD -- myproj.csproj

Внезапно это не работает. Я делаю Discard, ошибки не возникает, обновляю представление, но файлы все еще "модифицированы". Затем я попытался сделать то же самое в командной строке с тем же результатом:

c:\myproject> git reset HEAD

Unstaged changes after reset:
M       myproj.csproj

Почему это все еще перечислено как неустановленное изменение?

Я проверил, что файл действительно доступен для записи (ни один процесс не удерживает блокировку)

Обновить

git checkout тоже не работал:

C:\myproject>git checkout myproj.csproj

C:\myproject>git status
# On branch master
# 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:   myproj.csproj
#
no changes added to commit (use "git add" and/or "git commit -a")

Обновление 2 Также попробовал:

git checkout --git checkout -- .git checkout HEAD

, ни один из которых не решает мою проблему

обновление 3 - огромный шаг ближе:

Оказывается, когда я делаю заказ, .csproj действительно возвращается к правильной версии,но проверенная версия использует другойкодировка перевода строки, В то время как проверенная версия имеет CR-LF (0D-0A) для перевода строки, проверенная версия имеет только LF (0A). Следовательно, git считает, что файл должен отличаться в каждой строке. Почему это?

обновление 4: добавлена вторая строка git-команд, выпущенных SourceTree. Я не заметил, что в первый раз, поэтому я подумалgit reset HEAD сделаю что угодно. Это не меняет того факта, что основная проблема все еще связана с CR / LF (я думаю)

резюме Я никогда не находил решения проблемы, но я «решил» ее, проверив файл. Мой первоначальный вопрос не содержал информации о том, что SourceTree действительно дал правильные команды для отката того, что я хотел, поэтому большинство ответов здесь решают эту проблему.реальный вопрос до сих пор неясен, но моя основная теория заключается в том, что это было связано с CR / LF.

Ответы на вопрос(6)

Ваш ответ на вопрос