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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (33)
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*

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

如果缓存文件夹中的文件没有缓存,但是文件夹是缓存的,那么文件夹的权限就可以传输和存在。

提问于
用户回答回答于

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

*
!.gitignore

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

用户回答回答于

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

touch application/cache/.keep
git add -f application/cache/.keep

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

扫码关注云+社区