我想忽略存储库中的所有文件,除了发生在bin
子目录中的文件。我尝试添加以下到我的.gitignore
:如何让Git忽略除子目录以外的所有内容?
*
!bin/*
这不会收到预期的效果,但是:我创建的bin/
内一个新的文件,但这样做git status
仍显示nothing to commit (working directory clean)
。
有什么建议吗?
我想忽略存储库中的所有文件,除了发生在bin
子目录中的文件。我尝试添加以下到我的.gitignore
:如何让Git忽略除子目录以外的所有内容?
*
!bin/*
这不会收到预期的效果,但是:我创建的bin/
内一个新的文件,但这样做git status
仍显示nothing to commit (working directory clean)
。
有什么建议吗?
这忽略根文件&根目录,然后取消忽略根bin目录:
/*
/*/
!/bin/
这样,你得到所有的bin目录包括子目录及其文件。
出于某种原因,这并不始终如一地为我工作。我有两行'/东西/'和'!/材料/特定/',但它仍然忽略/材料/特定/ – 2013-11-18 00:00:12
@ LB--我也有类似的问题,'混帐检查忽略-v'告诉我这是因为'〜/ .gitignore' – 2014-08-25 12:32:45
@gurneyalex我发现它自我修复,如果我删除本地回购,并重新克隆它,它必须是一个错误。 – 2014-08-25 18:44:30
你唯一的问题是bin
目录本身不匹配bin/*
模式,所以git甚至不在bin
目录中查找。
有两种解决方案值得思考。
.gitignore
:
*
!/bin/
!bin/*
或
.gitignore
:
*
!/bin/
bin/.gitignore
:
!*
我喜欢的S作为第一个解决方案的第二个解决方案不会停止忽略bin
目录中不在名为bin
的子目录中的文件。这可能会或可能不会影响您的情况。
我认为更好的办法是用斜线启动模式定位每个图案顶端的git目录:
/*
!/public_html
!/.gitignore
而不是忽略所有的文件,它只会忽略顶层的文件,而不是在你不想忽略的目录中。
这.gitignore
作品对我来说:
*/
/*
!bin/
这里如何在某个目录不顾一切exept一个目录 “MY_SUPER_DUPER_TEMPLATE_directory”
结构:/的Bitrix /模板/ MY_SUPER_DUPER_TEMPLATE_directory
/*
!/bitrix
/bitrix/*
!/bitrix/templates
/bitrix/templates/*
!/bitrix/templates/MY_SUPER_DUPER_TEMPLATE_directory
*.DS_Store
*.gitignore
这解决了我的子子目录。谢谢 – frostymarvelous 2015-03-03 00:06:50
的作品。什么东西不伤害眼睛? – ed22 2016-06-01 04:58:43
这工作奇迹,取消了我已修改的laravel供应商包!谢谢你,为了包括一个目录,然后,排除它的内容,然后,包括所需的子目录等原理,你为我节省了很多头痛 – 2017-05-04 07:48:46
您必须在途中排除一切目的地,但你必须包括目的地:
/*
!/tsp
/tsp/*
!/tsp/src
/tsp/src/*
!/tsp/src/*.h
!/tsp/src/*.cpp
!/tsp/src/data.txt
!/.gitignore
忽略除tsp目录外的所有内容,忽略tsp目录中的所有内容,除了src目录...
+1。我最终在我的项目中使用了这个答案。 – 2013-09-06 15:54:55
从官方git doc,其中一个例子说:
例排除除了特定的目录富/条(注意/ *一切 - 没有斜杠,通配符也将排除foo中的一切/条):
$ cat .gitignore
# exclude everything except directory foo/bar
/*
!/foo
/foo/*
!/foo/bar
有关前导斜杠的说明:When to use leading slash in gitignore。
可能重复的[.gitignore排除文件夹,但包括特定的子文件夹](http://stackoverflow.com/questions/5533050/gitignore-exclude-folder-but-include-specific-subfolder) – 1615903 2017-03-30 13:51:16