如何从现有git存储库中的文件夹创建新的git存储库?

时间:2011-03-24 15:14:02

标签: git version-control

我想在现有的git存储库下创建一个新文件夹的git存储库。我希望历史记录保存在新的存储库中。如何创建这个新的git存储库?

3 个答案:

答案 0 :(得分:5)

您可以克隆它,然后在克隆上应用过滤器分支,以便拆分该存储库,只提取您想要的目录(及其完整历史记录)。

请参阅Detach subdirectory into separate Git repository

请注意克隆步骤中使用的git clone --no-hardlinks /XYZ /ABC

  

在克隆本地存储库时,--no-hardlinks开关使git使用真实文件副本而不是硬链接。

答案 1 :(得分:2)

假设您只想将子目录保留为单独的项目:您可以使用git filter-branch

  1. 创建新分支
  2. 定义一个“树过滤器”,以您想要的方式重新排列已检出的副本,理想情况下是一个单独的脚本
  3. 运行git filter-branch --tree-filter=/path/to/script thebranch
  4. 您现在有一个与正常开发流无关的单独分支,仅包含子目录。克隆新分支的人只获得子项目历史记录。

答案 2 :(得分:-1)

您可以克隆它并保留您想要的文件;然后将保留历史。