Как мерзавцу добавляют список файлов от разности мерзавца

Я случайно добавил набор файлов кэша в repo. Я теперь удалил их и теперь хочу передать изменение в repo.

Таким образом, я пытался сделать следующее, но мерзавцу, кажется, не нравится он:

git diff --name-only | grep '/cache/' | xargs git add

Ошибка:

warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
whose behaviour will change in Git 2.0 with respect to paths you removed.
Paths like 'sym_online_app_bs3/cache/demo_cust_can_create_tickets' that are
removed from your working tree are ignored with this version of Git.

* 'git add --ignore-removal <pathspec>', which is the current default,
  ignores paths you removed from your working tree.

* 'git add --all <pathspec>' will let you also record the removals.

Run 'git status' to check the paths you removed from your working tree.

Я не хочу git add --all потому что существуют некоторые другие изменения, я еще не хочу фиксировавший.

Имеет кого-либо, должен был сделать что-то подобное и иметь решение этого.

Спасибо

Я иду: версия 13.4.0 ядра Darwin (MAC OSX 10.9.5)

Обновление

Интерактивный мерзавец является приемлемой альтернативой на данный момент. Но был бы интересно узнавать, как спуститься по маршруту xargs.

git -i
0
задан 3 October 2014 в 05:05
2 ответа
git add --all

и

git add --all <pathspec>

разные.

Итак,

git diff --name-only | grep '/cache/' | xargs git add --all

- это то, чего вы хотите. Кроме того, git add может принимать множество аргументов в командной строке, так что всё, что вы хотите, можно сделать с помощью

git add --all $(git diff --name-only | grep '/cache/' )
2
ответ дан 4 December 2019 в 13:55

Вместо использования grep используйте параметр -G команды git diff:

git add --all $(git diff -G 'cache' --name-only)
1
ответ дан 16 August 2021 в 22:11

Теги

Похожие вопросы