git发布管理

我找不到什么是使用git来管理发行版的“正确”方法。 比方说,我有master,release-1,release-2和release-3分支。 版本1已经发布,我只修正并发布标签。 第二版即将发布,我在这个分支上大部分时间都在开发,而在第三期我开发了将来需要的东西。

  • 当我在release-2上添加一些功能时,它应该也是3,而不是1,我应该:

  • 合并release-2到master和cherry-pick功能相关的提交到release-3?
  • 樱桃挑选功能相关的承诺,掌握和樱桃挑选它释放-3?
  • 别的?
  • 当我需要在所有版本中修改某些版本时,我是否应该对主版本进行修改并将其选中到所有分支机构?

  • 我是否应该让master掌握最新版本(release-3分支),或者更确切地说是release-3上的开发人员,并在我需要release-4分支之前将其合并到master中?

  • 当我解决释放-1或释放-2时,我应该合并还是挑选它来掌握或者更确切地说?

  • 我不太清楚何时应该选择何时应该合并,以及分支机构之间的代码流是否正确。


    请参阅Junio C Hamano(git维护者)博客上的以下文章:

  • 完成合并
  • 永不合并(关于意图不合并回分支的分支)
  • 尽早解决主题分支之间的冲突/依赖关系
  • 有趣的远程分支(1)
  • 有趣的远程分支机构(2)
  • 另请参阅gitworkflows手册页。


    你所要求的是一个典型的合并工作流问题:从哪里到哪里合并。

    但是您还需要记住,在DVCS中,合并也会受到出版物考虑的影响(这些分支是推送到本地存储库还是公共存储库)

    特别是“master”分支是当有人克隆你的repo时默认可见的分支,意思是它应该引用你认为对用户/开发者最有用的东西。 (因为其他分支默认不在本地引用)


    1 /当我在release-2上添加一些功能时,它应该也是3,但不是1

    为了实现必要的演变,你可以将r2提交到r2,然后将它们合并为master。 这样,master中只有有限数量的提交可见,从而避免“提交混乱”。
    然而,对于r3,如果r3正在推送和发布,您可以从r2中挑选您需要的内容。 否则,你可以在r2上重新命名r3。 请参阅“git工作流和rebase vs合并”问题

    2 /当我需要在所有版本中更改某些版本时,我是否应该对主版本进行更改并将其选中到所有分支机构?

    你应该在r2上完成,然后在master和r1和r3上合并。 这样,只有一个提交被添加到这些分支。

    3 /我应该让master掌握最新的(release-3分支),或者更确切地说是release-3上的开发者,并且在我需要release-4分支之前合并到master中?

    这取决于您希望其他同事在克隆回购时看到的内容。
    但从1 /我收集主人代表r2(当前发展)而不是r3(未来,长期重构)

    4 /当我解决释放-1或释放-2时,我应该合并还是挑选它来掌握?

  • r1:樱桃挑选:并非所有你在r1上所做的都是与当前的发展相结合。
    实际上,我宁愿在r2上选择r1,确保一切都在那里工作,然后合并到主控上。
  • r2:合并。 如果主人代表R2,一个简单的合并就足够了。

  • 我会做:

    1)将r2合并到主机,然后将主机合并到r3(r3应该能够接受对主机的所有更改)

    2)提交到r1,合并到r2,合并r2到master,然后合并master到r3

    3)也许你应该使用master而不是r3,并且只在发布准备好时在r3分支上进行开发,并将这里的所有更改合并到master(这将是下一个版本)。 或者使用“master”和“next”分支作为Linux。

    4)合并为主

    我认为合并比挑选樱桃更清晰,并且认为只有在需要将功能或错误修复移植到较早的分支时才应该选择樱桃,否则在提交时没有预料到这一点(否则在最早的分支上提交/释放您想要的代码)。

    链接地址: http://www.djcxy.com/p/48945.html

    上一篇: git releases management

    下一篇: Avoid unwanted merge commits and other commits when doing pull request on GitHub