【发布时间】:2011-03-24 15:14:01
【问题描述】:
我想在现有 git 存储库下创建一个文件夹的新 git 存储库。我希望将历史记录保留在新存储库中。如何创建这个新的 git 存储库?
【问题讨论】:
标签: git version-control
我想在现有 git 存储库下创建一个文件夹的新 git 存储库。我希望将历史记录保留在新存储库中。如何创建这个新的 git 存储库?
【问题讨论】:
标签: git version-control
您可以克隆它,然后在克隆上应用过滤器分支以拆分该存储库,仅提取您想要的目录(及其完整历史记录)。
见Detach subdirectory into separate Git repository
注意克隆步骤中使用的git clone --no-hardlinks /XYZ /ABC:
--no-hardlinks开关使 git 在克隆本地存储库时使用真实的文件副本而不是硬链接。
【讨论】:
假设您只想将子目录保留为单独的项目:您可以使用git filter-branch。
git filter-branch --tree-filter=/path/to/script thebranch
您现在有一个与正常开发流无关的单独分支,仅包含子目录。克隆新分支的人只会获得子项目历史记录。
【讨论】:
您可以克隆它并保留您想要的文件;然后将保留历史记录。
【讨论】: