但这真的很奇怪我只是根据我在这里阅读Gitignore Docs
的内容打字这是我最奇怪的解决方案:
#ignore everything
*
#except
!.gitignore
!directory**/**
实际上这确实有效!使用git status
注意:我没有在文档中看到这个,或者我被混淆蒙蔽了,并没有在文档中看到它
有没有人可以让我理解为什么这有效?我真的很想学习git。
编辑:与lanzz相同的解决方案:
#ignore everything
*
#except
!demo
!demo/**
修改 谢谢, 大卫
答案 0 :(得分:1)
对我来说,这似乎是一个模糊的git
错误 - !directory**/**
是根据手册对连续星号的无效使用,但它没有声明如何这样的无效处理规则。
正确的规则应该是:
*
!directory/
!directory/**
原因是*
匹配所有文件而不管它们在中的目录(因为它不包含斜杠),因此!directory/
只允许目录本身,但不是其内容 - 您需要添加!directory/**
以匹配它们。仅使用!directory/**
而不使用!directory/
将无效,因为!directory/**
与directory
本身不匹配,并且仍会被忽略。
已修改 !directory/
优先于!directory
(没有尾部斜杠),因为!directory
也会匹配名为directory
的文件和目录更深入的目录树;这不会影响您的情况,但可能是更复杂的.gitignore
规则集中的问题。