Но он не будет (по умолчанию) работать без флага -f.
На самом деле, git clean
откажется выполнять что-либо, если вы не укажете -f
, -i
или -n
. Вы должны указать хотя бы один из них.
-n
для «пробного запуска» (показывает, что будет сделано без фактического удаления файлов). Два других действуют так же, как команда rm
. «force» (молча удаляет все, что соответствует) или «интерактивный» (явно запрашивает у пользователя каждый соответствующий файл).
Это просто механизм безопасности, как всплывающее окно "Вы уверены"?
На мой взгляд, это действительно эффективный способ представить вещь.
make clean на самом деле очень опасно, так как выглядит как обычная команда, но на самом деле удаляет все, что еще не сохранено, что делает его одной из редких команд, которые могут фактически потерять данные при нет надежды на выздоровление. Зная, что большинство новичков уже спешат с «git checkout -f» и «git reset --hard», мы легко понимаем, что такой шаг безопасности не бесполезен.
В частности, "git clean -f
" будет удалять каждый новый файл, который еще не был добавлен пока ! Это может быть, например, новый модуль, который вы писали весь день для проекта, над которым вы работаете.
Кроме того, когда git используется для работы над проектом разработки программного обеспечения (то есть наиболее частым случаем использования), можно предположить, что «git clean
» работает так же, как «make clean
», что будет большая ошибка. Последний создан для того, чтобы убирать собственное дерьмо и точно знает, что искать. Git сделал бы обратное.
Обычный способ работы с SCM - никогда не трогать то, что не было явно отслежено один раз. git clean
по сути предназначен либо для восстановления исходного состояния существующего репозитория, чтобы избежать его отбрасывания и повторного клонирования, либо для очистки всего, что бесполезно, после того, как мы выполнили большую задачу, перед началом совместного использования. вещь.
Если бы я был системным администратором и если бы это было возможно, я бы сконфигурировал поведение по умолчанию git clean
как -i
, вместо того, чтобы просто предлагать пользователю доступные параметры, как rm
в большинстве дистрибутивов. Это показывает сообщение, рассказывающее точно, что в настоящее время делается, и дает людям, которые не знают, что они делают, чтобы остановиться, пока не стало слишком поздно. Простой запрос «-f», «-i» или «-n» является риском для пользователя выбрать «-f» по умолчанию.