使用GIT

时间:2015-05-25 10:06:28

标签: git

我目前正在为几个客户开发一个应用程序。代码库在它们两者中都是99%,因为它是一个发票应用程序,原则是相同的。但是,每个“版本”都有一些小的特殊需求,这些需要通过设置(表单中的不同字段等)不易控制。

我想用GIT管理主代码库,以及“特定版本”文件,这将是4-5个文件的顶部。我一直在阅读建议,我已经看到一个好的方法是拥有一个包含所有代码库的主分支和每个版本的特定分支,合并从master到每个特定分支的常见更改,并在每个分支中提交特定的更改

这是一个好方法吗?我不知道如何从我现在拥有的东西到达那里:如果我现在分支然后从主分支中删除特定于版本的文件,它是否会将删除合并到特定分支?

谢谢!

2 个答案:

答案 0 :(得分:3)

可以使用一个分支用于公共代码,并将其合并到每个项目分支中,但这感觉就像一种非常奇怪的方式来近似git submodulesubtree 。如果您有合适的子目录结构,我强烈建议您使用git subtree

  

子模

     

经常发生在处理一个项目时,您需要使用其中的另一个项目。也许它是第三方开发的图书馆,或者您正在单独开发并在多个父项目中使用的库。在这些场景中出现了一个常见问题:您希望能够将这两个项目视为独立的,但仍然可以使用另一个项目。

来源:http://www.git-scm.com/book/en/v1/Git-Tools-Submodules

  

子树合并

     

[...]子树合并的想法是你有两个项目,其中一个项目映射到另一个项目的子目录,反之亦然。当你指定一个子树合并时,Git很聪明,可以弄清楚一个是另一个的子树并合适地合并 - 这真是太神奇了。

来源:http://www.git-scm.com/book/en/v1/Git-Tools-Subtree-Merging

答案 1 :(得分:1)

我认为这种规模相对较小,部署数量有限,团队规模小,训练有素,而且刷新和定制分支之间也没有太多提交。

然而,我也看到它有一个曲棍球形的复杂曲线,当你成长时,你可能会在速度上撞墙。如果您看到这种扩展,您将不得不及时查看某种形式的模块化/插件架构,以避免遇到这种情况。

当你看到整合变化开始受到伤害时(通常在拉动最新的主人时发生破坏)那么这应该是你的红旗。