1

我有一个项目使用两个单独维护的库。为了避免每次库更改时手动复制文件的混乱,我设法使用来自 github 的这个示例创建了两个子树。

我在这个工作目录的根目录中有我自己的代码。我也有foolib/barlib/作为其他两个回购的子树。假设我想看看我是否可以使用 1.20 版本的傻瓜代替 master,因为我知道一个很好,不会改变。那么也许我想看看1.21是否更好。我的想法是,如果我这样做,我git checkout foolib-1.20会为我放入 1.20 版代码foolib/。那不会发生。相反,整个工作目录被替换为傻瓜 1.20。这不是很有帮助,似乎否定了git subtree.

4

1 回答 1

1

如果您需要为您的库引用特定的提交,最好使用submodules

这样,您的父目录可以记录对这些库存储库的引用以及它们的确切提交。
请注意,这不会阻止您直接从工作树中更改库(前提是您提交并将这些库推回其上游存储库,提交您的父存储库:请参阅“子模块的真实性质”)

但是,子模块可能包含一些陷阱(请参阅“ git submodule 究竟是如何工作的”)

于 2012-09-28T06:13:25.683 回答