git发布管理

Mac*_*ski 36 git release

我找不到任何使用git管理版本的"正确"方法.说,我有master,release-1,release-2和release-3分支.版本1已经发布,我只对其进行了错误修正和发布版本标记.第2版​​将很快发布,我主要在这个分支上发展,而在3年我开发了将来需要的东西.

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

    • 合并release-2到master-cherry-pick功能相关提交到release-3?
    • 樱桃挑选功能相关提交掌握,而不是樱桃挑选它发布-3?
    • 还是吗?
  2. 当我需要在所有版本中进行更改时,我是否应该在master上进行更改并将其挑选到所有分支中?

  3. 我是否应该掌握最新的(第3版分支)或者第3版的开发人员,并在我需要发布4分支之前合并到主服务器?

  4. 当我在发行版1或版本2上修复时,我应该合并或者选择它来掌握或者说它?

我不太确定我什么时候应该挑选,什么时候应该合并,如果分支之间的代码流正确的话.

Jak*_*ski 17

请参阅Junio C Hamano(git maintainer)博客上的以下帖子:

另请参阅gitworkflows手册页.


Von*_*onC 7

你问的是一个典型的合并工作流问题:从哪里合并到哪里.

但是你还需要记住,在DVCS中,合并也会受到发布注意事项的影响(那些分支被推送到本地存储库或公共存储库)

默认情况下,当有人克隆您的仓库时,"master"分支是一个可见的分支,这意味着它应该引用您认为对该用户/开发人员最有用的内容.(因为默认情况下不会在本地引用其他分支)


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

在对r2进行了多次提交以实现必要的演变之后,您确实可以将r2合并到master.这样,在master中只能看到有限数量的提交,从而避免"提交混乱".
但是对于r3,如果推送和发布r3,你可以从r2中挑选你需要的东西.否则,你可以在r2上修改r3.请参阅" git workflow and rebase vs merge "问题

2 /当我需要在所有版本中进行更改时,我是否应该在master上进行更改并将其挑选到所有分支中?

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

3 /我是否应该让最新的(最新版本3)分支机构更新,或者更确切地说是第3版的开发人员,并在我需要发布4分支之前合并到主服务器?

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

4 /当我修复发行版1或发行版2时,我应该合并或者选择它来掌握或者说它?

  • r1:cherry-pick:并非所有你在r1上修复的东西都要合并到当前的开发中.
    实际上,我宁愿爽快地选择固定在r2上的r1,确保一切都在那里工作,然后在master上合并.
  • r2:合并.如果master表示r2,则简单合并就足够了.