我最近使用git-svn将Subversion转换为Git。 我知道我必须添加.gitkeep才能在Git中添加一个空目录。 这是否意味着Git在创建目录时不存储历史记录?创建空目录时,Git是否存储历史记录?
我的Subversion版本库有很多空目录,如果我将.gitkeep添加到Git的所有空目录中,这意味着目录的历史记录看起来好像它们是现在创建的,而不是创建空目录的确切日期。
我最近使用git-svn将Subversion转换为Git。 我知道我必须添加.gitkeep才能在Git中添加一个空目录。 这是否意味着Git在创建目录时不存储历史记录?创建空目录时,Git是否存储历史记录?
我的Subversion版本库有很多空目录,如果我将.gitkeep添加到Git的所有空目录中,这意味着目录的历史记录看起来好像它们是现在创建的,而不是创建空目录的确切日期。
不,Git不存储有关目录的信息。 git-svn
有设施可以帮你照顾这个。
git svn clone --preserve-empty-dirs
将在克隆时处理空目录。它将创建一个占位符文件来跟踪空目录(默认为.gitignore
),并根据需要删除它们。
git-svn还存储未跟踪的空目录。 git svn mkdirs
可在结帐或重置后使用以重新创建空目录。
最后还有svn-remote.<name>.automkdirs
配置值来控制是否git svn clone
和git svn rebase
会为您运行git svn mkdirs
。
您不能将目录添加到Git,只有文件。所以是的,Git不知道何时添加了空目录 - 因为空目录永远不会被添加。
Git只关心文件。所以是的,历史记录会记录'.gitkeep'(或者你选择的任何文件名,它不是预先定义的或者某个东西)。 – keltar 2015-02-06 06:06:32