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

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

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

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

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

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

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

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

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

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

git rm  

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

git gc
git reset --hard HEAD
git pull

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

Ответы [ 3 ]

8 голосов
/ 26 июля 2011

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

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

4 голосов
/ 26 июля 2011

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

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

0 голосов
/ 12 октября 2017

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...