Вот некоторый уместный выход из командной строки (с poshgit отображения статуса):Почему я получаю различия, от которых я не могу избавиться при переключении ветвей в git и как их исправить?
[Branch1]> git checkout Branch2
Switched to branch 'Branch2'
[Branch2 +0 ~3 -0]>
[Branch2 +0 ~3 -0]> git diff --ignore-space-at-eol
[Branch2 +0 ~3 -0]> git checkout .
[Branch2 +0 ~3 -0]>
Я попытался решение предложило в this question
[Branch2 +0 ~3 -0]> git reset --hard
HEAD is now at c8be749 some comment
[Branch2 +0 ~3 -0]> git reset HEAD
Unstaged another commit:
M Src/somefile
M Src/someotherfile.cs
M Src/athirdfile.cs
[Branch2 +0 ~3 -0]>
, как это происходит и как я могу это исправить кроме совершения изменений, поскольку я, похоже, не могу отменить различия. Даже скрепление ничего не делает.
Некоторые предложения о том, как мы попали в этот беспорядок и как мы можем выйти из него, будут высоко оценены.
Я смог воспроизвести это надежно сейчас, чтобы получить более окончательный ответ. Если я недавно клонирую мне репо, а затем переключитесь на ветку, а затем вернусь к мастеру, я получу несколько файлов, которые говорят, что у них есть изменения. Я попытался сыграть с настройками core.autocrlf, но это просто изменило количество файлов, которые были затронуты, и не решит проблему полностью.
Что я могу сделать, чтобы исправить эту все более раздражающую проблему?
Вы игнорируете пробелы в вызове diff. Это потому, что есть пробелы различия? –
@Garyfixler Я игнорирую пробельные различия в проверке diff, чтобы показать, что проблема связана только с пробелами. –
другой подходящий вывод будет «git status» – Asenar