Возникли проблемы с проверкой мастера в git после удаления каталога из репозитория в ветке - PullRequest
1 голос
/ 08 января 2010

Итак, я работал в ветке и решил удалить мою директорию документов из репозитория, используя git rm -r --cached docs. Все прошло хорошо. Преданный, рабочий каталог чистый, все хорошо. Теперь, когда я пытаюсь git checkout master, чтобы я мог объединить эту ветку обратно в master, я получаю следующую ошибку:

error: Untracked working tree file 'docs/bin/.htaccess' would be overwritten by merge.

Могу ли я сейчас что-нибудь сделать, чтобы вернуться в свою основную ветку? Нужно ли помещать каталог docs обратно в репозиторий, затем переключать ветки и затем удалять его на master?

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Обратите внимание, что git rm --cached удаляет файлы только из индекса. Почему вы не хотите удалить их из файловой системы?

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

$ git checkout -f master

Из документации git checkout:

-f
- сила
При переключении веток продолжайте работу, даже если индекс или рабочее дерево отличается от HEAD. Это используется для отбрасывания локальных изменений.

При проверке путей из индекса не допускайте сбоев при незаполненных записях; вместо этого необработанные записи игнорируются.

1 голос
/ 08 января 2010

Похоже, проблема в том, что вы удалили каталог из репозитория, но не из рабочего дерева, поэтому при попытке проверить master Git видит, что существует файл, который будет перезаписан. Я предполагаю, что вы хотели бы слить ветку и включить удаление в слияние; впоследствии этот каталог больше не будет отслеживаться Git, но он все равно будет храниться в вашей рабочей копии.

Вы можете сделать то, что вы описываете, или вы можете убрать этот каталог, проверить мастер, объединить вашу ветку, а затем переместить каталог обратно. Вы, вероятно, добавили бы .gitignore правило и к этому каталогу, чтобы Git не продолжал перечислять его в статусе, или случайно не добавили его обратно в репозиторий.

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