Git просит меня зафиксировать изменения или изменения в контроле, даже если все изменения были сделаны?
У меня есть две ветки локально, master
и Berislav
. Последний в настоящее время активен, и я совершил все изменения. Когда я пытаюсь проверить на master
, я получаю следующее сообщение:
Ошибка: ваши локальные изменения в следующие файлы будут перезаписаны по кассе: [список файлов, измененных в активной ветке] Пожалуйста, зафиксируйте свои изменения или запишите их, прежде чем вы сможете переключаться между ветвями. Aborting
Однако все остальное, что я пробовал - commit
, status
, merge
- говорит мне, что ничего не делать (рабочий каталог чист). Что мне нужно сделать, чтобы перейти к моей ветке master
?
EDIT: Когда я пытаюсь git stash
, я получаю:
ошибка: подача немодифицированного [пути к файлу] в diffcore
для всех файлов, перечисленных в приведенной выше ошибке.
Ответы
Ответ 1
Сегодня я столкнулся с подобной проблемой. git status
не перечислял файлы, о которых жалобы жаловались. Я сделал:
git checkout -- path/to/file
И это отменяет любые изменения в файле.
Еще более простой способ отменить все неустановленные изменения в текущем рабочем каталоге [1]:
git checkout -- .
[1]. Будьте предупреждены - вы потеряете любые другие неустановленные изменения, над которыми вы работали (если они есть). Если вы не знаете, что делаете, сохраните резервную копию файлов, над которыми вы работали:)
Ответ 2
Проще всего это:
git stash
git stash pop
"Ошибки", которые вы видите при запуске git stash
, не должны беспокоиться. Это просто git, признавая, что файл не имеет никаких незафиксированных изменений.
Ответ 3
У меня была аналогичная проблема на новом клоне. Я просто заставлял проверку с флагом -force (-f)
git checkout --force some_branch
Вероятно, это не лучший способ решить проблему в репо, в который вы вносите изменения, но в моем случае я был уверен, что не внес никаких изменений и просто хотел переключить ветвь.
Ответ 4
Переместите файл с нарушением в другое место. Затем удалите оскорбительный файл из дерева. Потяните еще раз. затем отмените изменения от вашего файла-нарушителя над файлом, который вы только что вытащили. взломать, но он работает.
Ответ 5
Кажется, что у вас есть необработанные файлы в вашей рабочей копии, которые отслеживаются на другой ветке. Git отказывается проверять другую ветку, поскольку ваши текущие невосстановленные локальные файлы будут перезаписаны файлами на другой ветке.
Теперь вы можете
- Добавьте эти файлы в текущую ветку, если эти файлы относятся к этой ветке.
- удалите эти файлы, если они не нужны
Ответ 6
Очень похоже на @JohnHammink ответ, но здесь идет.
Решение
- Удалить файл в другой каталог.
- Зафиксируйте свои изменения (возможно, вы просто удалили два файла).
- Добавьте файл снова в каталог.
- Commit (вы должны иметь возможность видеть только один файл, который был зафиксирован).
В моем случае это было из-за файла, который был переименован только с изменением в случае. например fooViewModel для FooViewModel. Git продолжал думать, что тот же файл фактически представляет собой два отдельных файла.
Я думаю, что это как-то связано с тем, что Unix чувствителен к регистру, а окна - нет.
Надеюсь, что это поможет
Ответ 7
У меня была такая же проблема, и это решило мои проблемы (в Linux):
git config --global core.autocrlf input
Ответ 8
Как следует из сообщения, перезапустите команду с параметром --force.
flutter upgrade --force