使用带有通配符的Pathspec进行Git签出

使用带有通配符的Pathspec进行Git签出,git,path,branch,wildcard,git-checkout,Git,Path,Branch,Wildcard,Git Checkout,我想将工作目录中的一些文件恢复到当前本地分支上的最新提交状态,即master,但是,我尝试使用git checkout来实现这一点的尝试一直失败 我已确认以下工作: git签出头src/graphql/User.ts 但我知道我应该能够在pathspec中使用通配符,即: git签出头'*/User.ts' 然而,这是失败的 如何使用带有通配符的pathspec将有限的文件集恢复到最新或上一次提交中存储的状态?事实证明,有两种解决方案可以解决此问题 1.Git提供了一个名为restore的新功能

我想将工作目录中的一些文件恢复到当前本地分支上的最新提交状态,即
master
,但是,我尝试使用git checkout来实现这一点的尝试一直失败

我已确认以下工作:
git签出头src/graphql/User.ts

但我知道我应该能够在pathspec中使用通配符,即:
git签出头'*/User.ts'

然而,这是失败的


如何使用带有通配符的pathspec将有限的文件集恢复到最新或上一次提交中存储的状态?

事实证明,有两种解决方案可以解决此问题

1.Git提供了一个名为
restore
的新功能,允许使用pathspec。见()。所以
git restore*/User.ts

会有用的

2.尽管我不太清楚原因,但以下方法也会起作用:
git签出--'*/User.ts'


*/User.ts
将只匹配一个级别。像
src/User.ts
Good point,我如何在所有级别上匹配
git checkout HEAD'**/User.ts'
给出了相同的错误,尽管它似乎是基于()的正确用法。请记住,负责shell扩展的不是git命令,而是您正在使用的shell。请注意,
git checkout--
表示从索引中提取,而
git签出头--
表示从当前提交中提取。