Я случайно добавил в репо кучу файлов кеша. Я удалил их и теперь хочу зафиксировать изменение в репо.
Итак, я попытался сделать следующее, но git это, похоже, не понравилось:
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 (Mac OSX 10.9.5)
Обновить
На данный момент приемлемой альтернативой является Git interactive. Но было бы интересно узнать, как пройти по маршруту xargs.
git -i
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/' )