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