【问题标题】:Git: pathspec 'path' did not match any file(s) known to gitGit:pathspec 'path' 与 git 已知的任何文件都不匹配
【发布时间】:2015-11-18 16:15:45
【问题描述】:

我想放弃我对很多文件的本地更改,这些文件的名称对应于一些通配符模式(例如prefix*

我试过用命令来做:

git checkout prefix*

但由于存在适合通配符的本地未跟踪文件而出现错误。文件未被跟踪,因为它们在 .gitignore 中被提及(例如 *.log):

pathspec 'prefix.log' did not match any file(s) known to git.

如果我有具有相应名称的本地未跟踪文件,如何还原大量文件(使用通配符)?

【问题讨论】:

  • 简单的解决方案是一会儿,在.gitignore 文件中注释该规则并进行更改并恢复文件。
  • 不要让你的 shell 覆盖模式。
  • @rajuGT 你的意思是:评论,然后git add,然后git checkout prefix*,然后'git reset',然后取消评论?太长了。
  • 尽管相关文件不在.gitignore 中,但我收到此错误。似乎 Git 在结帐语句中使用通配符有一些问题。当传递给“git diff”而不是“git checkout”时,Git 理解完全相同的路径规范。

标签: git wildcard git-checkout


【解决方案1】:

单线解决方案:

git ls-files 'prefix*' | tr '\n' '\0' | xargs -0 -L1 -I '$' git checkout -- '$'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2022-10-12
    • 2013-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多