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

*
!bin/*

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

有什么建议吗?


当前回答

尝试使用最新的GIT版本。

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

其他回答

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

/*
/*/
!/bin/

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

你必须排除到目的地途中的一切,但你必须包括目的地:

注意:这是一个排除文件(即.gitignore),所以逻辑是颠倒的。忽略tsp目录下的所有文件,除了src目录…

/*
!/tsp
/tsp/*
!/tsp/src
/tsp/src/*
!/tsp/src/*.h
!/tsp/src/*.cpp
!/tsp/src/data.txt
!/.gitignore

我最近不得不这么做:

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

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

这里如何忽略一切,除了一个目录“MY_SUPER_DUPER_TEMPLATE_directory”在一些目录

结构:/ / MY_SUPER_DUPER_TEMPLATE_directory bitrix /模板

/*
!/bitrix
/bitrix/*
!/bitrix/templates
/bitrix/templates/*
!/bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
*.DS_Store
*.gitignore

唯一的问题是bin目录本身与bin/*模式不匹配,所以git甚至没有在bin目录中查找。

我想到了两种解决方案。

.gitignore:

*
!/bin/
!bin/*

or

.gitignore:

*
!/bin/

bin /。gitignore:

!*

我更喜欢第二种解决方案,因为第一种解决方案不会停止忽略bin目录中不称为bin的子目录中的文件。这在你的情况下可能重要,也可能不重要。