如何使用分支在Git中实现模块化项目开发?

时间:2016-08-26 11:52:18

标签: java eclipse git versioning egit

我想将Git用于我的新java项目,我将在Eclipse中使用Java开发。所以我打算使用Egit的Egit插件。

现在,有多个成员在这个项目上工作,每个成员分配不同的模块。为每个开发人员创建分支机构是否可以?一个主分支,用于在特定版本构建结束时将所有分支合并到其中。

在依赖关系和代码冲突情况下,此计划是否有效?就像一个模块的代码试图调用另一个尚未开发的模块的方法。 2个不同的开发人员修改了同一个文件,并在他们各自的分支中提交。

2 个答案:

答案 0 :(得分:2)

您应该阅读一些有关分支策略的文档,例如: https://www.atlassian.com/agile/branching

今天大多数开发团队都在那里使用所谓的功能分支/任务分支。

答案 1 :(得分:1)

在一个持续了3年的项目中,我和一个200多人的团队使用了git和eclipse。让我澄清一些事情:

  1. 如果您的某个开发人员依赖尚未提供的代码,eclipse会将其视为错误并停止帮助您的开发人员。您的开发人员仍然可以使用eclipse,但它只会像记事本这样的文本编辑器一样有用。
  2. git的理念是让他们在本地工作区中的私有分支上工作,这样他们就不会依赖中央服务器进行更新。所以实质上他们不使用像CVS或ClearCase这样的公共分支。对私有存储库进行更新和提交,团队的其余部分不受此影响。从本质上讲,除非您愿意,否则您的分支从未被认为处于不良状态。
  3. 这是我们使用的模型:

    1. 构建团队将发布基线分支。
    2. 每个开发人员根据他们自己的代码完成状态,从他们的私有存储库发布了一个分支/标记(在他们自己的系统上,标记比我们学习多年来的项目更轻)。此代码将在构建团队发布的当前基线上进行重新定义。
    3. 然后,开发人员会请求构建团队将他们的代码合并到下一个基线的主分支中。
    4. 构建团队将按计划的方式获取所有此类已发布的分支,并合并它们并发布新的基准。
    5. 然后使用以下策略之一处理任何合并冲突:
      • 如果合并冲突很简单,将邀请两位开发人员中的一位或两位决定如何合并。
      • 如果它很复杂,则从合并中删除代码,并通知开发人员在新基线的末尾进行合并,并重新发布下一个基线的代码。
    6. 依赖构建团队未发布的代码的任何开发人员都会在征得他们同意的情况下直接从目标开发人员那里获取并继续他们的工作。
    7. 注意: 有用的git工具和命令:

      1. git gui
      2. gitk
      3. git tag
      4. git rebase
      5. 注意:构建团队必须熟练处理git才能正确使用git并发布干净的分支以供团队使用。

        一些建议:  1.承诺经常解释提交代码的目的。  2.使提交更小以帮助简化合并。  3.不要改变已发布的分支,它将有助于减少很多痛苦(没有发布分支的变更,特别是如果有人已经获取它们)

        Git是一个很好的工具,我相信一旦你使用它很难回到像clearcase,cvs这样的传统工具。

相关问题