Git:不要忽略一个包含点的目录

10

我尝试了这个.gitignore文件:

 *
 !mydirectory.ext
 !.gitignore

但是它没有起作用,除了.gitignore以外的一切都被忽略了。

还尝试过:

 !\mydirectory\.ext

这个目录需要一个扩展名,因为它是应用程序的一个插件。

有什么解决方法吗?


所以,你真的希望忽略除了那个目录之外的所有内容吗? - fge
2个回答

10

ref

*
!/mydirectory.ext/
!/mydirectory.ext/*
!/mydirectory/.ext/
!/mydirectory/.ext/*
!.gitignore

或者
*
# ignore all 
!/.*/
# but not directories which names starting with a dot
!/.*/*
# and all its contents
/.*/*/
# but ignore other directories (which names not starting with a dot)
# which results also not tracking its files underneath
!/.*/.*/
# but not to subdirectories (which names starts with a dot)
!/.*/.*/*
# and its contents


!/*.*/
# don't ignore directories which names has a dot in it
!/*.*/*
# and its contents
# extend it like with /.*/ 
!.gitignore

等等


2
那些白名单在git中并不容易实现。一旦你忽略了一个目录,git就不会再查看它,因此也不会检查这个目录中的例外情况。唯一的解决办法是使用长长的包含/排除级联,这真的很丑陋。最好的方法是重新审视你的问题,并尝试在没有这种常见例外的情况下解决它,例如通过明确忽略一切你确定不需要的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接