首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.gitignore排除目录中的文件,但不排除某些目录中的文件

.gitignore排除目录中的文件,但不排除某些目录中的文件
EN

Stack Overflow用户
提问于 2011-04-09 04:47:26
回答 5查看 92.9K关注 0票数 100
代码语言:javascript
复制
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*

这似乎不起作用。当我克隆项目时,没有"application/cache"文件夹或"application/cache/folder"文件夹等。

我想如果缓存文件夹中的文件没有被缓存,但是文件夹被缓存了,这样文件夹的权限就会转移并存在。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-04-09 04:55:36

Git不跟踪文件夹,只跟踪文件,所以如果你忽略文件夹中的所有内容,Git将无法跟踪任何内容。您可以向每个目录(application/cacheapplication/cache/folderapplication/cache/folder/onemorefolder/)添加一个包含以下内容的.gitignore文件:

代码语言:javascript
复制
*
!.gitignore

然后,您可以添加这些目录,并且只会添加每个目录中的.gitignore文件--但这意味着现在将跟踪这些目录(即,在克隆时创建)。

票数 223
EN

Stack Overflow用户

发布于 2011-04-09 04:49:58

Git不会跟踪空目录。只需在要提交的文件夹中添加一些空占位符文件即可。

代码语言:javascript
复制
touch application/cache/.keep
git add -f application/cache/.keep

对每个“空”文件夹也要这样做。稍后你可以忽略这些文件,它们的存在只是为了确保git在克隆上创建这些目录。.gitignore中的条目可防止跟踪文件夹中的其他文件(除非使用git add -f;强制执行)。

票数 22
EN

Stack Overflow用户

发布于 2016-05-09 14:21:48

也许还有另一种更干净的方法可以做到这一点。而不是将子.gitignore文件放在想要保留的文件夹中。您可以将其放在根.gitignore中,如下所示:

代码语言:javascript
复制
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*
!*.gitkeep

现在只需创建空的.gitkeep文件并将其提交到上面列出的目录中。然后将使用这些.gitkeep文件跟踪该文件夹,但不会跟踪任何内容。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5600621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档