application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*
这似乎没有起作用。当我克隆项目时,没有 "application/cache"
文件夹或 "application/cache/folder"
等文件夹...
我希望缓存文件夹中的文件不会被缓存,但文件夹会被缓存,以便文件夹权限可以传递和存在。
Git并不跟踪文件夹,只跟踪文件,所以如果您忽略了一个文件夹中的所有内容,Git将无法跟踪它。您可以在每个目录(application/cache
、application/cache/folder
、application/cache/folder/onemorefolder/
)中添加一个.gitignore
文件,并使用以下内容:
*
!.gitignore
然后,您可以添加这些目录,只有每个目录中的.gitignore
文件会被添加 - 但这意味着这些目录现在将被跟踪(即,在克隆时创建)。
Git不会跟踪空目录。只需在要提交的文件夹中添加一些空的占位文件。
touch application/cache/.keep
git add -f application/cache/.keep
对于每个“空”文件夹,也要执行此操作。以后您可以忽略这些文件,它们只是确保Git在克隆时创建这些目录的存在。 .gitignore
中的条目会防止跟踪文件夹中其他文件的更改(除非您使用 git add -f
强制添加)。
有另一种可能更简洁的方法来做到这点。而不是在你想要保留的文件夹中有子级 .gitignore 文件,你可以把它放在根目录下的 .gitignore 中,如下所示:
application/cache/*
application/cache/folder/*
application/cache/folder/onemorefolder/*
!*.gitkeep
现在只需在上述列出的目录中创建并提交空的 .gitkeep 文件。然后,该文件夹将受到这些 .gitkeep 文件的跟踪,但不会跟踪任何内容。
!*.gitkeep
:) - Éderson T. Szlachta/assets/*/
/assets/*.*
对我来说它运行良好。
root/LICENSE-FILE
这样的内容将不会被排除。 - Brett ZamirVisual Studio不认可被接受的答案。我必须在星号(*)前添加一个新行才能使其正常工作。
# Ignore all files in this folder.
*
!.gitignore
.gitignore
文件忽略,它们可能为空。在这种情况下,这正是我的答案。 - KingCrunch!subdir
。 - mipadi