2012-07-16 163 views
0

在我的情况下,超级项目足够大,因此它包含多个工件。假设项目A,B,C,D,E。他们是不同的git项目。现在我们需要处理两个不同的版本,然后归结为这个问题,我们如何分支。我最初来自颠覆世界,如果它是SVN,我可能会考虑创建一个超级项目,并包含所有子项目A,B,C,D,E,然后我只是将超级项目分开。git多项目分支

但就分支而言,在概念上,git与SVN有一些区别。只是想在git世界中,通常分支多个git项目的不同版本的最佳做法是什么?我知道子模块已经被讨论了很多,单独分支项目是否有意义?

另一个问题是,如果分支完成,我们如何版本在不同分支的文物?如果你有两个分支,这意味着你将有两个不同分支的所有子项目的不同版本,那么你开始闻到失败。

回答

1

由于分支是非常轻量级的,你不应该感到担心的各子项目创建它们,你有控制权。大部分工作都包含在名为git slave的项目中。在任何地方处理git submodule foreach可能会变得单调乏味,如果忘记在命令前加上前缀,就会引发问题。

0

子模块或子存储库是分离更大项目的方法。 每个子模块都有自己的责任,版本和分支机构。

因此,您必须问自己需要更改哪些存储库并将其分支。也许从10个子模块中,您只需触摸并分支一个或两个子模块,除非它是一个重大的重构,那么您没有选择。

可以分支下面的命令一切(在你的主仓库的根目录运行)

git checkout -b hacking_away 
git submodule foreach git checkout -b hacking_away