我有一个root git目录。我想在根目录下放置另一个独立的git存储库作为子目录。
我正在使用repo,因此我无法使用submoudles。我想将一个子目录符号链接到一个远程独立目录。远端目录将包含新的git存储库。
我看到使用git subtree
还有另一个选项Detach (move) subdirectory into separate Git repository。
答案 0 :(得分:0)
subtree
不同, submodule
并不需要任何其他步骤来获取其管理的子目录的源代码。也就是说,简单git clone
或git checkout
将"传递"使用subtree
管理的目录的所有内容。因此,任何与Git一起使用的工具都应该适用于子树,包括Repo(虽然我没有亲自用子树完全尝试它。)
但是,请注意,要更新使用子树管理的目录,仍需要手动执行。也就是说,子树指向的提交存储在Git存储库本身中,并且只能再次使用git subtree merge
或git subtree pull
手动更新。
将子树管理的目录视为存储库中的任何其他目录。 subtree
唯一添加的是 - 它允许将其他分支(包括远程分支)合并为特定前缀(即进入子目录)。并且做得很好。
使用外部存储库的synlinks可能无效 - 请参阅另一个SO答案 - https://stackoverflow.com/a/1507967/302343。