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