Я пытался выполнить очистку git некоторых неотслеживаемых файлов. Я ввел следующую команду, случайно верную:
git clean -dn | grep -v <files_to_exclude> | git clean -df
Обратите внимание, что в строке, похоже, отсутствует xargs
. То есть, я бы обычно писал предыдущую команду следующим образом:
git clean -df | grep -v <files_to_exclude> | xargs git clean -df --
При этом первая работала, а вторая - нет! Да, я знаю, что мог бы просто использовать:
git clean -df --exclude=<files_to_exclude>
Тогда я не знал о опции исключения.
Просто чтобы убедиться, что у вас правильное изображение, допустим, вы есть три неотслеживаемых файла x
, y
и z
, и вы должны исключить x
.
$ git clean -dn | grep -v x
Would remove y
Would remove z
Имеет смысл связать этот вывод напрямую с xargs, не пропуская "Удалил бы" часть неверна и вызовет поломку git clean.
Теперь вопрос: почему он работал с подключением этого вывода напрямую к git clean, он все еще работал?