Git:仅忽略文件夹的内容

时间:2012-09-20 15:10:09

标签: git github gitignore

我使用以下.gitignore文件(全局):

.idea
.svn
/media/covers/*
/media/tmp/*
/media/cache/*
/bin
/include
/lib
/local
*.log
*.pot
*.pyc
local_settings.py

所以在media/coversmedia/tmpmedia/cache我想忽略所有文件和文件夹,但不想忽略这些目录本身。此.gitignore文件忽略media/coversmedia/tmpmedia/cache dirs,我该如何解决?

TIA!

2 个答案:

答案 0 :(得分:14)

将.gitignore文件添加到要保留的目录中。在该目录中放

*

现在,当您执行git状态时,您将看到内容未显示为已跟踪,仅显示.gitignore文件。由于.gitignore文件位于目录中,这意味着将跟踪目录,但不会跟踪其他内容。

答案 1 :(得分:5)

Git不会将空目录添加到其索引中。我猜这些目录被排除,因为它们是空的,而不是因为匹配忽略规则。

人们解决这个问题的一种方法是在他们希望git保留的目录中创建一个名为.gitkeep的空文件。因此,您可以将该文件添加到media/coversmedia/tmp等。然后将!*.gitkeep/添加到您的.gitignore文件中。