在GIT中,项目混合新旧版本子组件的最佳方式是什么?

时间:2012-12-02 16:39:05

标签: git git-submodules

假设一个项目是使用旧的冻结版本的Component1(比如修订版Rev1),而是使用所有其他文件的当前(主版)版本。 Component1是同一存储库中的目录。

在这种情况下,GIT的“整个文件集视图”似乎很尴尬。在CVS中,可以简单地在Component1上放置一个粘性标签来冻结Rev1中的那些文件,甚至在那里分支,而所有其他文件都将保留在主分支上。

存储库用于需要最新Component1的其他项目,因此我们不能简单地将更新回滚到Component1。

一种可能性是在Rev1创建一个分支,但是必须经常合并来自master的所有其他文件的更新。此外,我必须非常小心这些合并,以免意外地将任何更新合并到Component1,这在GIT中很容易做到,因为默认情况下提交在合并后是自动的。

将Component1作为子模块映射将提供更多控制,但在这种情况下,所有文件都共享一个公共存储库。

“git checkout< rev> - Component1”让我选择一个特定版本的组件,但我不能提交它来掌握,或者将分支合并到执行此类修订选择的master中,否则它将接触所有其他项目。

任何其他建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以创建子树。 这里解释。 http://www.betaful.com/2011/01/i-love-git-subtree/