我经常做类似
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 stash tracked-file
相同。
这可能吗? 或者有什么解决办法吗?
Git 支持 glob,因此对于有问题的特定模式,您可以简单地使用
git stash -- "*.extension"
如果您想使用更复杂的模式,那么您可以使用
git ls-files
获取索引中的文件名列表,然后对其进行过滤。