比方说,我有一个存储库Repo,现在我想添加文件夹Common,这是单独的存储库。因此结构应如下所示:
Repo
myfile.txt
Common
anotherfile.txt
据我所知,至少有两种方法可以做到:子树和子模块。阅读一些git教程和手册后,我得出的结论是 subtree 是我想要的。
好,所以我已经将该文件夹添加到我的仓库中了:
git subtree add --prefix Common https://github.com/my/Common.git master --squash
好,现在看起来像预期的那样。一段时间后,我想更新子树文件夹。但不幸的是,到目前为止,我发现的唯一方法是:
git subtree pull --prefix Common https://github.com/my/Vommon.git master --squash
为什么我应该再次输入资源库网址?那不是存储在git结构中的某个地方吗?如果我有几个子树怎么办?我认为没有人记得所有网址。
有没有一种简单的方法可以做到这一点?也许我想念什么?
答案 0 :(得分:0)
为什么我应该再次输入资源库网址?那不是存储在git结构中的某个地方吗?
不。 URL与子模块一起存储,但不与子树一起存储。子树已完全集成到存储库中,它不记得它是一个单独的子树,也不记得它来自何处。
如果我有几个子树怎么办?
创建git别名或shell别名或脚本以拉/推许多子树。
或切换回子模块。它们有很多缺点,但至少他们记得从哪里克隆出来的。