git говорит: "Следующие неотслеживаемые файлы рабочего дерева будут перезаписаны извлечением" при переключении веток

У меня есть ветка под названием develop в удаленном репо hub и у меня есть контрольная копия develop ветка в моем локальном репозитории git (пользователь poomalai).

Я удалила (git rm --cached) файл (Mydirectory/myfile.php) из другой кассовой копии (пользователь raj), и подтолкнул к хранилищу хаба.

Теперь, когда я вытягиваю изменения из хаба в (пользователь poomalai), он работает нормально, и у меня есть сообщение коммита file deletion в журнале git.

Я добавил файл в .gitignore файл в (пользователь poomalai).
Теперь я создал файл в моем локальном репо (пользователь poomalai).

Теперь файл больше не находится в управлении версиями, и изменения в файле не отслеживаются git.

Но когда я пытаюсь переключиться на какую-то другую ветку, он говорит следующее:

ошибка: следующие неотслеживаемые файлы рабочего дерева будут перезаписаны извлечением:
Mydirectory/myfile.php
Пожалуйста, переместите или удалите их, прежде чем вы сможете переключать ветви.
Aborting

Когда я удаляю файл с помощью Linux rm Команда, я могу переключать ветви.
Если я создаю файл снова, он снова выдает ту же ошибку.
Мне нужно, чтобы файл находился в каталоге, но он не должен отслеживаться git.

Я попробовал следующие команды:

git rm  

Неустранимый: pathspec 'diamonds_webservice/dbconnect.php' не соответствует ни одному файлу

git gc
git reset --hard HEAD
git pull

Ничего не работает Пожалуйста, кто-нибудь, помогите мне

3 ответа

Решение

Это может быть возможно, потому что файл добавлен в репозиторий в "целевой ветви".
Убедитесь, что файл git rm'из целевой ветви, а затем попробуйте переключить ветви.

Как сказал @CharlesB, git делает это для обеспечения целостности данных, чтобы при переключении каталогов ничего не терялось.

Хорошо, что git предупреждает вас об этом, потому что переключение на ветку, в которой не удален файл,... удалит его.
Таким образом, вы делаете это правильно: удалите (или переименуйте) его перед проверкой ветви, в которой он удален.

Так что просто git заботится о ваших данных перед их перезаписью.
Так как он не версионный, вы не сможете восстановить его после проверки.

Единственное, что сработало для меня:

в андроид студии - зайдите в журнал событий - нажмите на ссылку "посмотреть их". - затем вручную нажмите минус, чтобы удалить файлы во всплывающем окне.

(потому что это было только 4-5 файлов, я сначала переименовал файлы), мне пришлось сделать это дважды, так как некоторые элементы не были удалены с первой попытки...

Другие вопросы по тегам