我想忽略存储库中的所有文件,除了那些出现在bin子目录中的文件。我试着在我的.gitignore中添加以下内容:

*
!bin/*

然而,这并没有达到预期的效果:我在bin/中创建了一个新文件,但是执行git status仍然没有显示任何要提交的内容(工作目录清洁)。

有什么建议吗?


当前回答

这是我的解决方案。在我的场景中,我有一个文件夹,子文件夹如下:

数据库(主文件夹) conf(文件夹) 司机(文件夹) jar(文件夹) sql(文件夹)

从数据库文件夹中,我想只推送sql文件夹,所以我的.gitignore文件如下:

database/*
!database/sql/

第一行简单地说忽略数据库文件夹的所有子文件夹,第二行意味着因为你忽略了数据库文件夹的所有子文件夹排除(不忽略)sql子文件夹

其他回答

尝试使用最新的GIT版本。

*
!*/
!/path/to/your/dir/**

我最近不得不这么做:

*
!sub-dir/
!sub-dir/*

我不知道为什么我需要两行来排除一个文件夹,但这对我和macos都是有效的。

这是我的解决方案。在我的场景中,我有一个文件夹,子文件夹如下:

数据库(主文件夹) conf(文件夹) 司机(文件夹) jar(文件夹) sql(文件夹)

从数据库文件夹中,我想只推送sql文件夹,所以我的.gitignore文件如下:

database/*
!database/sql/

第一行简单地说忽略数据库文件夹的所有子文件夹,第二行意味着因为你忽略了数据库文件夹的所有子文件夹排除(不忽略)sql子文件夹

这个。gitignore对我有用:

*/
/*
!bin/

忽略根文件和根目录,然后取消忽略根bin目录:

/*
/*/
!/bin/

通过这种方式,您可以获得所有的bin目录,包括子目录及其文件。