Вопрос:
У меня огромный проект с несколькими подмодулями. Единственное, что я сделал сегодня вне
git reflog
И он вернул набор коммитов.
Но теперь, когда через пару часов, когда я собираюсь совершить некоторые изменения, статус git показывает, что все файлы необходимо добавить снова, т.е. все удаляется и снова добавляется снова.
git ls-files
ничего не возвращает. Что пошло не так? И как я могу это исправить?
Лучший ответ:
Я просил дать разъяснения в комментариях, поэтому, если то, что я предположил здесь, неверно, я обновлю, когда будет предоставлено разъяснение. Но похоже, что вы говорите, все рабочие копии присутствуют, но git status может сказать что-то вроде
Changes to be committed deleted: file1 deleted: file2 … Untracked files file1 file2 …
Это означало бы, что ваш индекс был как-то уничтожен. git rm —cached это произойдет с некоторыми изменениями git rm —cached или git reset. Или это может быть так, что файл .git/index был просто удален.
В любом случае, если это состояние вещей, вы можете
git add .
в корне рабочей директории, и это должно быть нормально. Затем вы сможете увидеть правильное git status сравнивающее вашу незавершенную работу с текущей фиксацией.
(Я предполагаю, что вы все еще проверили выбранную ветку, вы можете проверить это. Имейте в виду, что вы хотите быть осторожным с любой командой, которая повлияет на рабочий каталог в это время, поскольку у вас есть незафиксированные изменения, и git может ” t помочь вам восстановить их, если они потеряны до того, как они будут совершены, если вы не пойдете вперед и не застреваете их.)