Почему «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.