Почему нет «pathspec», когда я пытаюсь удалить папку в Git?

9

Я пытаюсь удалить папку из своего репозитория Git с помощью

git rm folderToRemove

но Git выдает эту ошибку, когда я пытаюсь это сделать.

fatal: pathspec 'siteFiles/applicationFiles/templates/folderToRemove' 
did not match any files

Мой текущий каталог "шаблоны". Я нахожу эту ошибку странной, так как могу cdв папку "folderToRemove", поэтому она явно существует. Что означает эта ошибка?

Дэвид Фокс
источник

Ответы:

17

Git не делает версии каталогов, только «содержимое» (содержимое каталога или файлы)

не найдено ни одного файла

Это означает, что в нем нет файлов для удаления folderToRemove, как я упоминал в разделе « Невозможно рекурсивно удалить файлы из Git ».
Теперь вы можете удалить (Windows delили Unix rm) сам каталог.

Как описано в разделе « Удаление пустых каталогов в Git », вы также можете запустить:

git clean -fd

Однако:

Предупреждение: команда clean удаляет все файлы в текущей рабочей копии, которые не отслеживаются git. Это хороший способ потерять работу, если вы не добавили новые файлы в git. Всегда беги git addраньше git clean.

Запустите скорее сначала:

git clean -d -x -n

Как описано в разделе « Как очистить локальный рабочий каталог в git? ».

VonC
источник
но как мне «почистить» пульты других людей, когда они вытягивают?
Илья Кристиан
@IleaCristian из-за распределенной природы Git, вы не чистите пульт, только свой собственный клон.
VonC
Проблема в том, что мы не делаем окончательную сборку. Файлы проекта (которые видит IDE) на самом деле являются папками с «расширением» (myproj.xcworkspace или myproj.xcodeproj). Я хотел удалить xcworkspace и оставить только xcodeproj. По сути, я хотел заставить людей, которые делают сборку, использовать только файл xcodeproj.
Илья Кристиан