从目录中的分支创建新的git repo

时间:2013-05-23 23:46:04

标签: git

在我的Git仓库中,我有一个目录A.在分支中,我在A下创建了一个目录B.有没有办法在目录B中创建/初始化一个新的Git仓库?复制该目录,清除所有.git数据,并在该新复制的目录中执行git init可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

可能,但您丢失了所有文件历史记录。这不是一个好方法。我认为将整个仓库克隆到新文件夹更好,然后使用git rm丢弃不需要的文件。

答案 1 :(得分:1)

请注意,您可以拆分git repo,使用git filter-branch在其自己的repo中创建一个子目录。

参见" How can I split a repository apart into smaller atomic repositories?"
(和" Detach subdirectory into separate Git repository":

  

要重写存储库,使其看起来好像foodir/已成为其项目根目录,并丢弃所有其他历史记录:

   git filter-branch --subdirectory-filter foodir -- --all

这将允许您保留历史记录,但会重写您的原始仓库之一(意味着其他贡献者必须将其克隆重置为您的新历史记录)。

完成后,您可以将新的仓库克隆到您的子目录所在的位置:父仓库会忽略嵌套的仓库。
或者您可以将该子仓库包含为submodule