`` `git clean``` не удаляет подкаталоги (не рекурсивно) - PullRequest
23 голосов
/ 04 мая 2011

У меня проблемы с git clean. Рассмотрим следующий сценарий:

git status -su
?? file_1
?? xyz/file_2

git clean -f
Not removing xyz/file_2
Removing file_1

Я не хочу удалять папку xyz, но хочу удалить file_2 внутри нее.

Почему git clean не работает рекурсивно?

Ответы [ 4 ]

41 голосов
/ 04 мая 2011

Если оно игнорируется, используйте git clean -xf. Вы можете сделать git clean -xdf, но это также приведет к удалению неотслеживаемых каталогов. Используйте -n для пробного прогона.

http://gitready.com/beginner/2009/01/16/cleaning-up-untracked-files.html

13 голосов
/ 30 декабря 2013

Кроме того, git clean не работает с деревом каталогов. Считайте, что у вас есть

> git status
Untracked files:
  ../file1.orig
  ../../file2.orig

git clean -df ничего не будет делать в этом состоянии. Вы должны «cd» войти в корень проекта и снова запустить «git clean -df».

7 голосов
/ 17 ноября 2017

попробуйте это:

git clean -xdf

Дайте мне знать, если это сработало.

0 голосов
/ 04 мая 2011

Возможно, у вас есть каталог xyz в вашем файле .gitignore?Вы можете изменить это поведение, используя переключатель -x на clean.Кроме того, если каталог xyz не отслеживается (внутри него ничего не отслеживается), он не будет удален, если вы не укажете параметр -d.

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