Git 是否在创建空目录时存储历史记录?

Does Git store history when an empty directory was created?

我最近使用 git-svn 将 Subversion 转换为 Git。 我知道我必须添加 .gitkeep 以在 Git 中添加一个空目录。 这是否意味着 Git 不存储创建目录时的历史记录?

我的 Subversion 存储库有许多空目录,如果我将 .gitkeep 添加到 Git 的所有空目录,这意味着目录的历史记录被视为现在创建的,不是创建空目录的确切日期。

您不能将目录添加到 Git,只能添加文件。所以是的,Git 不知道什么时候添加了空目录——因为永远无法添加空目录。

不,Git 不存储有关目录的信息。 git-svn 有设施可以为您处理这件事。

git svn clone --preserve-empty-dirs 将在克隆时为您处理空目录。它将创建一个占位符文件来跟踪空目录(默认情况下 .gitignore)并根据需要删除它们。

git-svn 还存储未跟踪的空目录。 git svn mkdirs 可以在结帐或重置后使用以重新创建空目录。

最后还有 svn-remote.<name>.automkdirs 配置值来控制 git svn clonegit svn rebase 是否会为您 运行 git svn mkdirs