Я часто делаю что-то вроде git add/checkout/stash -- (find -name "*.extension")
.
Например, чтобы вернуть все текстовые файлы или все изображения.
Он отлично работает с add
и checkout
.
При использовании add
также добавляются неотслеживаемые файлы.
При использовании checkout
или stash
неотслеживаемые файлы отображаются как ошибки ('<file>' did not match any file(s) known to git
).
При использовании checkout
есть по крайней мере обходной путь:
for file in (find -name "*.extension")
git checkout -- $file
end
Но при использовании тайника это создаст один новый тайник для каждого файла.
Я ожидаю, что это будет работать так же, как git stash tracked-file untracked-file
.
Это возможно? Или есть обходной путь?
Git поддерживает glob, поэтому для конкретного шаблона вы можете просто использовать
git stash -- "*.extension"
Если вы хотите использовать более сложный шаблон, вы можете использовать git ls-files
, чтобы получить список файлов в индексе, а затем отфильтровать его. Возможно, вам будет полезно общение.