我可以使用子树克隆git repos并重新链接子树而不知道原始链接的分支或标记吗?

时间:2014-07-18 16:00:37

标签: git git-subtree

问题

我正在将遗留的CVS回购迁移到Git中,并且遇到了涉及子树的计划策略的问题。

我们正在开发几种不同的产品,在某些情况下,这些产品共享一个我们也在开发的公共库。我将把每个产品都放在自己的git repo中,因为它们经历了自己独立的开发生命周期。

对于使用公共库,我计划在单独的repo中使用公共库,然后使用子树将库拉入需要它们的产品中。我们的问题是不同的产品会引入不同版本的库。

我可以将子树链接到特定的标签或分支,没问题,但是其他开发人员如何知道我们克隆回购并重新链接子树时使用的标记/分支?

示例

我们正在Guncho回购中开发Guncho产品。

我使用子树将标签v2.1链接到Filfre库。

git subtree add --prefix=filfre ssh://stephen@gitserver:filfre v2.1

然后我的同事Jane克隆了Guncho回购以帮助解决它。

git clone ssh://jane@gitserver:guncho

有什么方法可以让我知道将filfre子树重新链接到v2.1标签,而不是告诉她吗?

1 个答案:

答案 0 :(得分:0)

我假设,因为您正在使用Filfre库的标记版本,Jane不会对其进行任何更改。除非Jane要对Filfre库进行更改,否则她甚至不需要知道filfre目录中的代码最初来自不同的repo。

子树命令允许git使用不同的目录结构进行合并,但是一旦将该代码合并到主分支中,它实际上全部合并到您自己的仓库中,而不是作为链接或指向不同仓库的指针就像git submodule一样。

Jane不需要知道或关心代码的原始来源。一旦子树被合并,它就是Guncho repo的所有部分。