如何递归将所有App.config文件恢复到指定Git提交?
如何递归恢复仓库中所有App.config文件到指定提交版本
要批量恢复仓库中所有子目录下的App.config文件到指定提交版本,你可以用以下两种方法:
方法1:使用Git递归路径匹配
直接用**通配符递归匹配所有层级的子目录,同时用引号包裹路径以处理带空格的文件夹:
git checkout <commit> -- "**/App.config"
为什么之前的命令失效?
git checkout <commit> -- App.config:仅匹配仓库根目录下的App.config,不会遍历子目录*/App.config:仅匹配一级子目录下的文件,深层子目录的文件会被忽略;且带空格的文件夹会被Shell拆分,导致Git识别错误的路径
方法2:结合git ls-files精准定位已跟踪文件
如果需要确保只恢复Git已跟踪的App.config文件,可以先用git ls-files列出所有符合条件的文件,再批量checkout:
git checkout <commit> -- $(git ls-files "**/App.config")
执行完命令后,你可以用git status查看文件变更,确认所有App.config都已恢复到指定提交的版本。
内容的提问来源于stack exchange,提问作者Spook
相关产品推荐
相关产品推荐

