git错误-与git已知的任何文件都不匹配


git error- did not match any file(s) known to git?

我添加了一个模式,可以递归地忽略.git目录.info内exclude文件中的文件。

patter : httpdocs/**/bak_*.*

如果我从httpdocs提交,它正在工作,并且从更改的目录提交时会出现错误。

git commit -m "formatting js" httpdocs/* [working]
git commit -m "formatting js" httpdocs/dir1/dir2/* [giving below error]

错误:路径规范'httpdocs/dir1/dir2/bak_admin.abc.php'与git已知的任何文件都不匹配。

基本上我想知道为什么会发生这种事。

*通配符模式由shell扩展(而非git
这意味着git commit -m "formatting js" httpdocs/*由翻译

 git commit -m "formatting js" httpdocs/fileorDir1
 git commit -m "formatting js" httpdocs/fileorDir2
 git commit -m "formatting js" httpdocs/fileorDir3

如果所有这些文件都已经被跟踪,git-commit就可以工作了。如果不是,则返回您看到的错误消息。

git commit -m "formatting js" httpdocs/dir1/dir2/*的情况下,翻译为:

git commit -m "formatting js" httpdocs/dir1/dir2/fileirDir1
git commit -m "formatting js" httpdocs/dir1/dir2/fileirDir2
git commit -m "formatting js" httpdocs/dir1/dir2/fileirDir3

这将包括被明确忽略(根本不跟踪)的文件,包括bak_admin.abc.php
即使.gitignore设置正确,shell(而不是git)也会将bak_admin.abc.php传递给git commit命令,从而导致

error: pathspec 'httpdocs/dir1/dir2/bak_admin.abc.php' did not match any file(s) known to git.

解决方案:不要使用"*"

git commit -m "formatting js" httpdocs/
git commit -m "formatting js" httpdocs/dir1/dir2/