application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*
这似乎不起作用。当我克隆项目时,没有"application/cache"
文件夹或"application/cache/folder"
文件夹等...
我想如果缓存文件夹中的文件没有被缓存但文件夹是,那么文件夹权限就会传输并存在。
答案 0 :(得分:210)
Git不跟踪文件夹,只跟踪文件,所以如果忽略文件夹中的所有内容,Git将无法跟踪任何内容。您可以将.gitignore
文件添加到每个目录(application/cache
,application/cache/folder
,application/cache/folder/onemorefolder/
),其中包含以下内容:
*
!.gitignore
然后,您可以添加这些目录,并且只会添加每个目录中的.gitignore
文件 - 但这意味着现在将跟踪目录(即,在克隆时创建)。
答案 1 :(得分:22)
Git不会跟踪空目录。只需在要提交的文件夹中添加一些空占位符文件即可。
touch application/cache/.keep
git add -f application/cache/.keep
对每个“空”文件夹也这样做。稍后您可以忽略这些文件,它们实际上只存在以确保git在克隆上创建这些目录。 .gitignore
中的条目会阻止跟踪文件夹中的其他文件(除非您使用git add -f
强制执行;)。
答案 2 :(得分:14)
还有另一种可能更清洁的方法。而不是在您想要保留的文件夹中包含.gitignore文件。你可以把它放在root .gitignore中,如下所示:
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*
!*.gitkeep
现在只需创建空的.gitkeep文件并将其提交到上面列出的目录中。然后将使用这些.gitkeep文件跟踪该文件夹,但不会跟踪任何内容。
答案 3 :(得分:3)
你可以在每个文件中放一个.gitignore文件(比如mipadi说)或者在你的root .gitingnore文件上做类似的东西
/assets/*/
/assets/*.*
它适用于我
答案 4 :(得分:1)
Visual Studio不喜欢接受的答案。我必须在*之前添加一个新行才能使其正常工作。
# Ignore all files in this folder.
*
!.gitignore