git - 为什么 .gitignore 不包含以 ! 为前缀的文件?

标签 git include gitignore

我的 .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 没有被忽略,正如我所料。

但是,core-plot/framework/CorePlot-CocoaTouch.xcodeproj/project.pbxproj 仍然被忽略。

有什么想法吗?

谢谢!

最佳答案

gitignore man page 中所述:

A gitignore file specifies intentionally untracked files that git should ignore

如果glucosia.xcodeproj/project.pbxproj(如评论中的Alan所建议)已经被跟踪,则需要将其从缓存中移除,然后gitingore指令才会生效.

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

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

关于git - 为什么 .gitignore 不包含以 ! 为前缀的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196982/

相关文章:

git - 只推送某些文件一次

git - 将大型提交推送到 GitHub 会导致致命写入错误 : Bad file descriptor

git - 为什么 HEAD^ 在命令提示符下成功而 HEAD~ 失败?

c++ - #ifndef 没有按预期工作

java - 动态发送 JSP 并将其包含在另一个 JSP 中

PHP 包括。我似乎无法弄清楚

Git:Merge Head exists 消息尽管没有任何提交上演。

git - 为什么git rebase不显示我要压缩的提交?

Git:如何从索引中删除文件而不从任何存储库中删除文件

git - 仅从 gitignore 中排除 js 文件