git error-与git已知的任何文件都不匹配?

时间:2016-07-19 07:00:04

标签: php git git-commit

我添加了一个模式,在.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]

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

基本上我想知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

*通配符模式由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/