Git忽略除特定扩展名以外的所有文件,即使在子目录下也是如此 我如何忽略所有具有特定扩展名的文件,甚至考虑那些位于子目录内的文件?

Git忽略除特定扩展名以外的所有文件,即使在子目录下也是如此 我如何忽略所有具有特定扩展名的文件,甚至考虑那些位于子目录内的文件?,git,Git,示例:我的玩具“存储库” 我想保留foo.xyz和tmp/foo.xyz,但不保留foo.arg 我尝试了以下方法: # gitignore file * !*/

示例:我的玩具“存储库”

我想保留foo.xyz和tmp/foo.xyz,但不保留foo.arg

我尝试了以下方法:

# gitignore file
*                                                                                                           
!*/                                                                                                         
!.gitignore
!*.xyz
但是,foo.arg不会被忽略:(


这里有关于子目录中的某种递归模式的帮助吗?

这是一个.gitignore文件:

/Debug/      ignore a folder and all subdirectories.
/Release/
*.sdf        ignore all files in this format. (all in project directory)
sample.txt   ignore a file.
我想你已经将文件添加并提交到git,现在却试图忽略它。
不可能。您应该将其从git中删除。

以防万一,请确保您的文件名为
/.gitignore
,而不是
/.gitnore
,因为这是您的问题(可能是一个简单的打字错误)

要确保文件被忽略,请获取一个已知被忽略的文件,然后键入
git check ignore-v--afile
:您将看到.gitignore文件是否实际有效

如果没有,请尝试以下方法:

git rm --cached -r .
git add .
git commit -m "apply .gitignore"

在您的repo中是否有包含文件
foo.arg
?在粘贴的文本中,在
.gitignore
的第二行
*
和第三行
!*/
之后有很多空格。这些空格在实际文件中吗?虽然尾部空格被忽略,但尾部制表符不存在,因此如果有空格,则不存在空格其中的te space实际上是所有空格,还是有其他形式的空格?是什么情况促使人们想到使用line来解决问题?@JSelser No,foo.arg是一个新文件。
git check ignore
修复了我的问题。我在.git ignore文件中有另一条规则,但我在问题中没有显示,而该规则实际上允许foo.arg.
git check ignore
向我展示了规则。非常感谢!!!
git rm --cached -r .
git add .
git commit -m "apply .gitignore"