如何使用git子树与repo工具?

时间:2013-11-06 06:13:52

标签: git version-control symlink repository

我有一个root git目录。我想在根目录下放置另一个独立的git存储库作为子目录。

我正在使用repo,因此我无法使用submoudles。我想将一个子目录符号链接到一个远程独立目录。远端目录将包含新的git存储库。

我看到使用git subtree还有另一个选项Detach (move) subdirectory into separate Git repository

  1. 使用repo工具时可以使用它吗?
  2. 使用子树比使用符号链接解决方案更好吗?

1 个答案:

答案 0 :(得分:0)

subtree不同,

submodule并不需要任何其他步骤来获取其管理的子目录的源代码。也就是说,简单git clonegit checkout将"传递"使用subtree管理的目录的所有内容。因此,任何与Git一起使用的工具都应该适用于子树,包括Repo(虽然我没有亲自用子树完全尝试它。)

但是,请注意,要更新使用子树管理的目录,仍需要手动执行。也就是说,子树指向的提交存储在Git存储库本身中,并且只能再次使用git subtree mergegit subtree pull手动更新。

将子树管理的目录视为存储库中的任何其他目录。 subtree唯一添加的是 - 它允许将其他分支(包括远程分支)合并为特定前缀(即进入子目录)。并且做得很好。

使用外部存储库的synlinks可能无效 - 请参阅另一个SO答案 - https://stackoverflow.com/a/1507967/302343