Подтвердить что ты не робот

Git просит меня зафиксировать изменения или изменения в контроле, даже если все изменения были сделаны?

У меня есть две ветки локально, master и Berislav. Последний в настоящее время активен, и я совершил все изменения. Когда я пытаюсь проверить на master, я получаю следующее сообщение:

Ошибка: ваши локальные изменения в следующие файлы будут перезаписаны по кассе: [список файлов, измененных в активной ветке] Пожалуйста, зафиксируйте свои изменения или запишите их, прежде чем вы сможете переключаться между ветвями. Aborting

Однако все остальное, что я пробовал - commit, status, merge - говорит мне, что ничего не делать (рабочий каталог чист). Что мне нужно сделать, чтобы перейти к моей ветке master?

EDIT: Когда я пытаюсь git stash, я получаю:

ошибка: подача немодифицированного [пути к файлу] в diffcore

для всех файлов, перечисленных в приведенной выше ошибке.

4b9b3361

Ответ 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