大家的 Git 仓库 发布新的版本比如 1.1, 或者 release 是使用 branch 还是用的 tag?

2015-11-18 09:13:53 +08:00
 cxq

之前理解是 branch , 但是有个朋友说应该用 tag , 但是他之前用 svn 比较多。所以不知道信谁的

7158 次点击
所在节点    git
30 条回复
paradislover
2015-11-18 09:17:12 +08:00
建一个 release 分支,每次发布打上 tag
yellowV2ex
2015-11-18 09:17:52 +08:00
正常来说版本应该是用 tag 表示一个存档或者 release 之类,因为 branch 大多是比如你要做一个双 11 专版之类的才用,意义上来说 branch 是分支
mrgeneral
2015-11-18 09:19:47 +08:00
每次发布版本我用的是 branch ,给我的感觉 tag 就是一个标签而已。😓
restran
2015-11-18 09:21:16 +08:00
赞同 paradislover ,看到很多项目都是会在每个版本打上 tag
proudzhu
2015-11-18 09:23:26 +08:00
如果还要更新老版本(打安全补丁之类的),用 branch ,否则 tag 就行了
paradislover
2015-11-18 09:30:38 +08:00
可以参考 git flow ,有自己的标准就行
http://nvie.com/posts/a-successful-git-branching-model/
msg7086
2015-11-18 09:34:24 +08:00
branch+tag 咯
比如你一个产品,发布了 1.1 版本,那么这个分支就打上 1.1 ,然后 fix 都在这个分支上做,要发布 1.1.2 的时候就在 1.1 分支上打 1.1.2 的 tag 就行了。然后这个分支继续维护,以后发 1.1.5 就再打一个 tag 。
然后 mainline 分支就给 new features ,发布的时候分叉出 1.2 分支然后继续维护。

你可以参考一下 Rails 项目的分支,就是典型的 branch+tag 。
timwu
2015-11-18 09:46:49 +08:00
gitflow +1 ,一般是 master 出 release 分支,然后最终发布时, release 分支合并回 develop 和 master ,然后打版本号的 tag
pythoner
2015-11-18 09:58:07 +08:00
同意楼上
yyfearth
2015-11-18 10:03:41 +08:00
最终 release 的版本应该是不变的 所以是 tag
而版本(至少是大版本)本身应该是一个 branch 因为你会为这个版本更新

branch 是一个可以更新代码的分支 (一条时间线)对应一个产品线(同一个产品而言就是大版本)
而 tag 是不应该变化的某一个 commit (一个时间点)对应一次 Release
yougg
2015-11-18 10:06:55 +08:00
cwek
2015-11-18 10:15:31 +08:00
发布版本用 tag
开发分支用 branch
fengyqf
2015-11-18 10:38:44 +08:00
赞同 @cwek
发布版本用 tag
开发分支用 branch
------------------------------
公共仓库(或说是集中仓库)里,最好 tag 吧。用 branch 就死在那里了,一大堆不再维护的 branch 丢在那里,不太美观。
开发人员的本地版本库,随便吧,爱怎么搞都行,反正不推到公共仓库里
DingHao
2015-11-18 10:39:01 +08:00
发布版本用 tag
开发分支用 branch
julyclyde
2015-11-18 10:56:07 +08:00
显然是 tag
tag 是一个静态概念,而 branch 是动态的,可以往 branch 里继续 commit 内容,而它还是叫这个 branchname ,不符合“发布”的概念
janxin
2015-11-18 11:28:08 +08:00
目前是 master 分支上直接打 Tag 做发布版本...Bug 通常会快速修复发布,所以会跟随 master 分支前进
happypy1
2015-11-18 11:39:28 +08:00
tag 不就是为了标记版本用的吗?

不过,不管是新建 branch 还是 tag ,在 git 里面,本质上其实只是指针的变化。。
pathletboy
2015-11-18 11:49:27 +08:00
当然是 tag , branch 随时可开。比如你打了 1.0 的 tag ,然后发现要在该版本上修复 BUG ,直接在该 tag 所在的 commit 上创建 branch 进行修复,修复完发布并合并到 master 。
typcn
2015-11-18 12:19:56 +08:00
如果你在开发 Chrome ,用 tag 合适些,滚动更新嘛。
如果你在开发 Windows ,那 branch 合适,因为每次更新变化都很大,而且老版本还要继续更新维护,当然,打补丁修 bug 什么的还是 tag 。
如果你在开发 Parallels Desktop ,那你用 branch 或者 tag 都可以,因为经常会出新的大版本,出了新版本老版本又不维护了,新版本再收一次费。

(玩笑
18ac0877
2015-11-18 12:58:22 +08:00
gitflow +1

使用 gitflow 省事多了, git 太灵活了,反而搞的太乱

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

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

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

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

© 2021 V2EX