git子树标记浏览

git子树标记浏览,git,git-tag,git-subtree,Git,Git Tag,Git Subtree,我有一个项目,使用两个分别维护的库。为了避免每次库更改时手动复制文件的混乱,我使用创建了两个子树 我在这个工作目录的根目录中有自己的代码。我还将dublib/和barlib/作为其他两个回购协议的子树。假设我想看看是否可以使用1.20版的傻瓜版而不是大师版,因为我知道一个很好,不会改变。也许我想看看1.21是否更好。我的想法是,如果我使用git签出傻瓜ib-1.20将为我将1.20版代码放入傻瓜ib/。那不会发生。取而代之的是,整个工作目录被替换为1.20。这不是很有帮助,而且似乎否定了git子

我有一个项目,使用两个分别维护的库。为了避免每次库更改时手动复制文件的混乱,我使用创建了两个子树


我在这个工作目录的根目录中有自己的代码。我还将
dublib/
barlib/
作为其他两个回购协议的子树。假设我想看看是否可以使用1.20版的傻瓜版而不是大师版,因为我知道一个很好,不会改变。也许我想看看1.21是否更好。我的想法是,如果我使用
git签出傻瓜ib-1.20
将为我将1.20版代码放入
傻瓜ib/
。那不会发生。取而代之的是,整个工作目录被替换为1.20。这不是很有帮助,而且似乎否定了
git子树的有用性

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

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


但是,子模块可以包含一些GOTCHA(请参见“”)

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

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

但是,子模块可以包含一些gotchas(请参见“”)