为什么.gitignore不包含前缀为的文件!

为什么.gitignore不包含前缀为的文件!,git,include,gitignore,Git,Include,Gitignore,My.gitignore文件的内容如下: build/ glucosia.xcodeproj/ !glucosia.xcodeproj/project.pbxproj core-plot/framework/build core-plot/framework/CorePlot-CocoaTouch.xcodeproj/ !core-plot/framework/CorePlot-CocoaTouch.xcodeproj/project.pbxproj .DS_Store Classes/.DS_

My.gitignore文件的内容如下:

build/
glucosia.xcodeproj/
!glucosia.xcodeproj/project.pbxproj
core-plot/framework/build
core-plot/framework/CorePlot-CocoaTouch.xcodeproj/
!core-plot/framework/CorePlot-CocoaTouch.xcodeproj/project.pbxproj
.DS_Store
Classes/.DS_Store

奇怪的是,
glucosia.xcodeproj/project.pbxproj
并没有被忽略,正如我所料

但是,
CorePlot/framework/CorePlot cococoatouch.xcodeproj/project.pbxproj
仍然被忽略

有什么想法吗

谢谢

如以下文件中所述:

gitignore文件指定git应该忽略的故意未跟踪的文件


如果已经跟踪了
glucosia.xcodeproj/project.pbxproj
(如注释中所建议),则需要将其从缓存中删除,然后gitingore指令将生效

git rm --cached glucosia.xcodeproj/project.pbxproj

如果文件已经提交,请参见此(
git commit--amend
将其从最新提交中删除)

我遇到了相同的问题,但解决方案不同。如果您忽略了一个目录而不是其中的一个文件,它将无法工作。您必须忽略目录的文件

这不起作用: 这将有助于:
glucosia.xcodeproj/project.pbxproj可能已经是存储库的一部分了吗?glucosia.xcodeproj/project.pbxproj已经被跟踪,但是core plot/framework/CorePlot-cococoatouch.xcodeproj/project.pbxproj没有。我的解决方案是将第二个文件添加到repo中。所以,看起来是这样的!符号仅适用于跟踪的文件。这在文档中并不清楚,我也有类似的问题,但是我忽略的目录有好几层,我想取消忽略的文件有好几层。My.gitignore看起来像这样:src/sys!src/sys/lib/perl5/myLib.pm
conf/
!conf/config.json.orig
conf/*
!conf/config.json.orig