【发布时间】:2011-02-23 12:39:06
【问题描述】:
我最近开始使用 Git,但只有一件事遇到了麻烦。如何在不跟踪目录内容的情况下跟踪目录?
例如,我正在开发的网站允许上传。我想跟踪上传目录,以便在分支等时创建它,但显然不是其中的文件(开发分支中的测试文件或 master 中的真实文件)。
在我的 .gitignore 中,我有以下内容:
上传/*.*
也试过(忽略整个目录):
上传/
此目录还可能包含子目录(uploads/thumbs/uploads/videos/)我希望能够跟踪这些但不跟踪它们的文件。
这可以通过 Git 实现吗?我到处搜索都没有找到答案。
【问题讨论】:
-
Git 只跟踪文件。您可以做的是使用 git 挂钩并跟踪将包含目录列表的文件(使用挂钩自动生成)。虽然我不完全确定这是否可能。
-
更具体:Git 跟踪 content 并且(对于 git)空目录不是内容。无论您是否同意,您都可以争论,但作为另一种“解决方法”,您可能会考虑在 build/install/when-needed 上创建目录。但是:我也使用“
.placeholder-file”-解决方案;) -
我不使用 .placeholder,而是使用 .gitignore 文件。这不仅会处理目录中的排除项,而且它本身也充当占位符。