我如何将一个空的目录(不包含文件)添加到一个Git存储库中?


当前回答

您可以随时将 README 文件放入目录中,并解释为什么您想要此,否则空白,目录在存储库中。

其他回答

Jamie Flournoy的解决方案工作得很好. 这里有一个稍微改进的版本,以保持.htaccess :

# Ignore everything in this directory
*
# Except this file
!.gitignore
!.htaccess

使用此解决方案,您可以插入一个空的文件夹,例如 /log、 /tmp 或 /cache 并且文件夹将保持空白。

基本上,一个源代码管理系统的目的是管理源代码,空的目录不是源代码,Git也经常被描述为内容跟踪器,再次,空的目录不是内容(相反的,实际上),所以它们不被跟踪。

这样做的一个简单的方式是通过添加一个.gitkeep 文件到您希望(目前)保持空白的目录。

查看此 SOF 答案以获取更多信息 - 这也解释了为什么一些人发现添加.gitignore 文件的竞争协议(如在许多答案中所述)令人困惑。

你不能,不幸的是,你永远不会能做到这一点,这是Linus Torvald自己做的决定,他知道什么对我们有好处。

这里有一个地方,我读过一次。

我找到了 Re: 空的目录,但也许还有另一个。

你必须和工人一起生活......不幸的是。

我也面临着空的目录的问题. 使用存储文件的问题是,你需要创建它们,并删除它们,如果它们不再需要(因为后来添加了子目录或文件。

这就是为什么我决定写一个开源工具,可以自动管理创建/删除此类存储文件。 它是为.NET 平台写的,并在 Mono (.NET for Linux) 和 Windows 中运行。

只需看看: http://code.google.com/p/markemptydirs