我有一个具有以下结构的git存储库:
repo - /folder1
- /folder2
...此存储库有两个分支:
repo ┌--------- master
|
└--------- branch1我想将branch1作为一个子模块添加到这个存储库中,这样我就拥有了以下结构:
repo - /folder1 - /branch1 (submodule)
- /folder2
...我知道可以添加一个子模块来跟踪分支,而不仅仅是一个特定的提交,但是当我尝试添加repo作为它自己的子模块时,我无法提交结果,我得到了以下错误:
fatal: git cat-file :0:folder1/branch1: bad file
Unable to checkout folder1/branch1运行git-fsck会返回一个很大的悬空blob列表。
据我所知,我还没有找到任何人试图这样做。我在文档中也没有发现任何东西说这是不可能的。
谁能对git的内部结构有更多的了解,解释一下为什么这是不可能的?
发布于 2016-12-21 09:44:53
子模块无法满足您的需求,您可以使用子树。
当您添加子模块时,主存储库会跟踪子模块存储库的整个分支。因此,您不能仅按子模块跟踪branch1。
对于子树,可以通过以下方式将分支添加到某个路径:
git subtree add --prefix=folder1/branch1 <repo URL> branch1
https://stackoverflow.com/questions/41247102
复制相似问题