Объединение команды git clean (Porcelain) - PullRequest
0 голосов
/ 05 августа 2020

Я пытался выполнить очистку 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, он все еще работал?

1 Ответ

0 голосов
/ 05 августа 2020
  • «первый сработал»: он вел себя точно так же, как git clean -df <no extra args>, который очищает все файлы, а не только те, которые вы хотели включить ...
  • " последний не ": [edit] запускал его на моем компьютере," он работает "(с большой оговоркой, что grep фактически будет соответствовать полным сообщениям, а не именам файлов, поэтому запуск grep -v Would, например, исключает все строки, и если вывод пуст, вы снова используете git clean -df, который снова удаляет все, а не ничего ....) какую ошибку вы видите в вашем случае?
...