Git分支和合并

时间:2016-09-10 14:00:09

标签: git github gitlab

我有一个特定的分支和合并方案,如下所述::

假设我有一个" Master"在git repo中分支。还有一个功能分支说 "特征1"取自大师,约200人将在那里工作。现在我想采取另一个分支说" Team_Feature"大约20人将在那里工作。同时我必须保持" Team_Feature"分支与" Feature1 Branch"同步。在" Feature1"之后分支完成后,它将合并到主分支和新分支"特征2"将在这段时间内,我的团队将继续致力于" Team_Feature",这将与" Feature 2分支"合并。

现在,我将Feature1分支重新命名为Team_Feature,我将每周进行一次。

面临的问题:: 我第二次改变,我遇到了很多合并冲突,属于下面提到的不同情况

  1. 许多冲突属于类型(添加/添加)
  2. 许多人(重命名/删除)
  3. 许多是编辑冲突,文件中的冲突从未在Team_Feature分支中发生过更改。
  4. 其中一些冲突是合法的。
  5. 所以,问题是,

    1. 这是什么添加/添加,重命名/删除,重命名/重命名冲突?
    2. 导致这些冲突的原因是什么?
    3. 如何避免它们?
    4. 最重要的疑问是上面列表中的第3位。
    5. 请帮助,提前致谢:)

1 个答案:

答案 0 :(得分:0)

<强>目的:

  1. 让Feature1与master保持同步,将来将其合并为master
  2. 保持团队功能与Feature1同步,并在以后合并到 特征2
  3. <强>解决方案:

    1. 每天将master与master1合并
    2. 继续将Feature1合并到团队功能(在第1点之后)
    3. 一旦Feature2问世,请继续每天将Feature2合并到团队功能。
    4. 所以,问题是,

      这是什么添加/添加,重命名/删除,重命名/重命名冲突?

      导致这些冲突的原因是什么?

      - &GT;有很多链接可以理解这一点,(重命名/删除,重命名/重命名)基本上它是对合并中两个分支中的文件的树级别更改,并且两个更改都不同。除了添加/添加 - &gt;这是文件内容级别冲突,例如在同一文件中的相同行号添加不同内容

      如何避免它们?

      • 避免使用这种复杂的分支,替代方案可以 使用切换而不是功能分支。

      • 如果您正在使用功能分支模型,请编写邮件以完成 关于你正在工作的地区的团队,并要求他们不要做树 该区域的级别更改,如删除,重命名等。这更容易 解决内容冲突,但解决树级冲突很痛苦。

      • 最终,避免在分支机构工作的大团队中发生冲突并不容易。

      我强烈建议在这种情况下使用切换来避免复杂的合并冲突。 - 切换是一个功能的运行时条件(标志),可以根据切换标志以两种可能的方式运行该功能。所有功能仅在一个分支中切换。

      示例: -

      让我们说我们正在实施一个新的详细信息页面,

      我们将首先设置一个切换,其值存储在某个文件中,例如new_details_page = true

      现在在代码中我们会有类似的东西 if(new_details_page == true) {  渲染&#39; newPage&#39; }其他{ 渲染&#39; oldPage&#39; }

      如果新详细信息页面的工作未完成,并且您希望使用旧详细信息页面发布产品,则只需使用该标志构建应用程序为false并部署到发布环境。

      最后,在这种情况下避免合并冲突的最佳解决方案是使用切换,您可以在互联网上阅读更多关于切换与功能分支的内容。