Я ранее мог отменить изменения через SourceTree, выполнив функцию "Отменить", которая под капотом производит эту команду:
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
Вдруг это не сработает. Я делаю сброс, ошибки не возникает, refreesh view, но файлы все еще "изменены". Затем я попытался сделать то же самое в командной строке со следующим, таким же результатом:
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
ни одна из которых не решает мою проблему
update 3 - огромный шаг ближе:
Оказывается, когда я делаю checkout,.csproj действительно возвращается к правильной версии, но в проверенной версии используется другая кодировка строки строки. В то время как для зарегистрированной версии CR-LF (0D-0A) для подачи линии, выписка имеет только LF (0A). Следовательно, git полагает, что файл будет отличаться на каждой отдельной строке. Почему это?
update 4: добавлена вторая строка команд git, выпущенных SourceTree. Я не заметил, что в первый раз, почему я думал, что git reset HEAD
сделает все. Это не меняет того факта, что основная проблема по-прежнему связана с CR/LF (я думаю)
Резюме Я не нашел решения проблемы, но я "решил" ее, проверив файл. Мой первоначальный вопрос не содержал информации о том, что SourceTree действительно выдал правильные команды для отката, что я хотел, поэтому большинство ответов здесь затрагивают эту проблему. Реальная проблема пока неясна, но моя основная теория заключается в том, что она связана с CR/LF.