我想在现有的git存储库下创建一个新文件夹的git存储库。我希望历史记录保存在新的存储库中。如何创建这个新的git存储库?
答案 0 :(得分:5)
您可以克隆它,然后在克隆上应用过滤器分支,以便拆分该存储库,只提取您想要的目录(及其完整历史记录)。
请参阅Detach subdirectory into separate Git repository
请注意克隆步骤中使用的git clone --no-hardlinks /XYZ /ABC
:
在克隆本地存储库时,
--no-hardlinks
开关使git使用真实文件副本而不是硬链接。
答案 1 :(得分:2)
假设您只想将子目录保留为单独的项目:您可以使用git filter-branch
。
git filter-branch --tree-filter=/path/to/script thebranch
您现在有一个与正常开发流无关的单独分支,仅包含子目录。克隆新分支的人只获得子项目历史记录。
答案 2 :(得分:-1)
您可以克隆它并保留您想要的文件;然后将保留历史。