请教大家 master 分支和 release 分支有什么区别,

2019-04-11 19:45:03 +08:00
 NicolayShi
如果每个开发人员一个以自己名字命名的开发分支,还有一个 dev 测试分支,有必要同时保留 master 和 release 吗,
18178 次点击
所在节点    程序员
24 条回复
boris1993
2019-04-11 19:48:39 +08:00
release 用 tag 管就够了吧
2kCS5c0b0ITXE5k2
2019-04-11 19:50:44 +08:00
release 类似公测 dev 是内测 master 是稳定 (个人理解
janus77
2019-04-11 20:14:10 +08:00
在你说的这种情况下,我觉得 master 才是测试用的分支——使用 master 的代码和 release 的配置、环境这些东西,模拟真正的 release 测试。
如果测试不通过还可以改,测试通过以后再新开分支 or 打 tag 作为 release 使用。
Mutoo
2019-04-11 20:22:47 +08:00
master 是最新稳定版本,release 是对外发布的版本快照,
新开发的 feature 会 merge 到 master 上
而 patch 则 merge 到 release 上
NicolayShi
2019-04-11 21:56:03 +08:00
@Mutoo 求解释您这段话的意思,我小白有点不大理解,(掩面哭泣),新功能合并到 master,补丁合并到 release,但是不应最终都合并到和线上保持一致的 master 分支吗,版本快照又怎么理解呢,
xy90321
2019-04-11 22:00:00 +08:00
@NicolayShi 在他的描述里和线上一致的是 release 分支。m 打到 release 分支的 hotpatch 最终也会在某一个时间点合并回 master 这是没错的。
NicolayShi
2019-04-11 22:00:53 +08:00
@Mutoo 我看公司的代码提交记录是修改都合并到了 release,但是奇怪没有合并到 master 的记录 但是 master 的 log 记录却和 release 的 log 一致,不好意思问老大,所以在这边问了,(掩面哭泣)
NicolayShi
2019-04-11 22:04:45 +08:00
@xy90321 我们好像和您说的一样,但是我不确定,因为我查到 开发人员的分支的修改都会合并到 release,但是 没有 合并到 master 的记录,master 又和 release 的 log 相同,这和您说的 hotpatch 有关吗,不是太理解这个 hotpatch,
shawndev
2019-04-11 22:05:58 +08:00
latest 和 stable 的差别吧。
gz911122
2019-04-11 23:52:58 +08:00
release
是支持一个新的用于生产环境的发布版本,
允许修正小问题,并为发布版本准备元数据。
https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow
可以看下这个
xy90321
2019-04-12 00:07:09 +08:00
@NicolayShi
hotpatch 是手残打错了,本来想指 hotfix 然后又想说 patch。。。
master 和 release 的 log 相同那应该是你们公司没根据最标准流程来
SharkIng
2019-04-12 00:19:09 +08:00
msg7086
2019-04-12 00:45:29 +08:00
master 和 release 分支怎么用应该是贵司自己决定的呀。
比如我司是做产品的,所以旧版代码也要打补丁维护,所以我们有 release-4.1 这样的分支来 backport 补丁。
比如我维护的开源软件,旧版代码一般维护一个版本,所以我有 stable 分支和 oldstable 分支,再老的不维护的版本就打个 tag 解决。
比如我自己写网站的时候,因为只有一台生产和一台 staging,所以 master 推 staging,然后 production 推生产。
不同的环境下做法不一样的。
CFM880
2019-04-12 07:43:16 +08:00
release 测试开始回归时开的分支,master 线上分支,每个 merge 点都是可编译的分支,且是比较稳定的
release 分支 commit 会比较少,提交比较多,证明测试在前期测试可能不太好。

具体的可以结合 sourcetree 的工作流来看
CFM880
2019-04-12 07:49:14 +08:00
这种 git 工作流,坚决不手敲命令,sourcetree 的 git 工作流很好解决了这问题。如果工作流操作规范没有必要保留 release featue hotfix,操作不规范,就有保留分支必要
bunnyblueair
2019-04-12 08:36:53 +08:00
Android aosp 的 master 分支经常编译不过,稳定个🐔
corningsun
2019-04-12 08:40:05 +08:00
可以参考 gitflow,另外推荐个 ui 客户端,GitKraken,可以清晰地看到各个分支的合并记录
Biwood
2019-04-12 08:42:38 +08:00
“如果每个开发人员一个以自己名字命名的开发分”,是不是现在很多开发者觉得用 git 特别高大上,但是压根就不知道为什么要用 git。
Godaigo
2019-04-12 08:47:35 +08:00
@NicolayShi release 是程序发布的 branch 定时从 master 分出来 之后做发布前的最后测试 masrer 就是码农们日常工作时 merge 进去的主分支 当然也是经过一系列自动化测试 基本算是稳定 出了问题也可以 revert.
ThomasZ
2019-04-12 08:51:13 +08:00
release 是发布的稳定版, master 主版本不一定是稳定版或者发布版, master 的版本号始终是最大的, 也是平时开发的那个版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/554218

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX