之前理解是 branch , 但是有个朋友说应该用 tag , 但是他之前用 svn 比较多。所以不知道信谁的
1
paradislover 2015-11-18 09:17:12 +08:00
建一个 release 分支,每次发布打上 tag
|
2
yellowV2ex 2015-11-18 09:17:52 +08:00
正常来说版本应该是用 tag 表示一个存档或者 release 之类,因为 branch 大多是比如你要做一个双 11 专版之类的才用,意义上来说 branch 是分支
|
3
mrgeneral 2015-11-18 09:19:47 +08:00
每次发布版本我用的是 branch ,给我的感觉 tag 就是一个标签而已。😓
|
4
restran 2015-11-18 09:21:16 +08:00
赞同 paradislover ,看到很多项目都是会在每个版本打上 tag
|
5
proudzhu 2015-11-18 09:23:26 +08:00
如果还要更新老版本(打安全补丁之类的),用 branch ,否则 tag 就行了
|
6
paradislover 2015-11-18 09:30:38 +08:00
可以参考 git flow ,有自己的标准就行
http://nvie.com/posts/a-successful-git-branching-model/ |
7
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 。 |
8
timwu 2015-11-18 09:46:49 +08:00
gitflow +1 ,一般是 master 出 release 分支,然后最终发布时, release 分支合并回 develop 和 master ,然后打版本号的 tag
|
9
pythoner 2015-11-18 09:58:07 +08:00
同意楼上
|
10
yyfearth 2015-11-18 10:03:41 +08:00
最终 release 的版本应该是不变的 所以是 tag
而版本(至少是大版本)本身应该是一个 branch 因为你会为这个版本更新 branch 是一个可以更新代码的分支 (一条时间线)对应一个产品线(同一个产品而言就是大版本) 而 tag 是不应该变化的某一个 commit (一个时间点)对应一次 Release |
11
yougg 2015-11-18 10:06:55 +08:00
|
12
cwek 2015-11-18 10:15:31 +08:00
发布版本用 tag
开发分支用 branch |
13
fengyqf 2015-11-18 10:38:44 +08:00
赞同 @cwek
发布版本用 tag 开发分支用 branch ------------------------------ 公共仓库(或说是集中仓库)里,最好 tag 吧。用 branch 就死在那里了,一大堆不再维护的 branch 丢在那里,不太美观。 开发人员的本地版本库,随便吧,爱怎么搞都行,反正不推到公共仓库里 |
14
DingHao 2015-11-18 10:39:01 +08:00
发布版本用 tag
开发分支用 branch |
15
julyclyde 2015-11-18 10:56:07 +08:00
显然是 tag
tag 是一个静态概念,而 branch 是动态的,可以往 branch 里继续 commit 内容,而它还是叫这个 branchname ,不符合“发布”的概念 |
16
janxin 2015-11-18 11:28:08 +08:00
目前是 master 分支上直接打 Tag 做发布版本...Bug 通常会快速修复发布,所以会跟随 master 分支前进
|
17
happypy1 2015-11-18 11:39:28 +08:00
tag 不就是为了标记版本用的吗?
不过,不管是新建 branch 还是 tag ,在 git 里面,本质上其实只是指针的变化。。 |
18
pathletboy 2015-11-18 11:49:27 +08:00
当然是 tag , branch 随时可开。比如你打了 1.0 的 tag ,然后发现要在该版本上修复 BUG ,直接在该 tag 所在的 commit 上创建 branch 进行修复,修复完发布并合并到 master 。
|
19
typcn 2015-11-18 12:19:56 +08:00
如果你在开发 Chrome ,用 tag 合适些,滚动更新嘛。
如果你在开发 Windows ,那 branch 合适,因为每次更新变化都很大,而且老版本还要继续更新维护,当然,打补丁修 bug 什么的还是 tag 。 如果你在开发 Parallels Desktop ,那你用 branch 或者 tag 都可以,因为经常会出新的大版本,出了新版本老版本又不维护了,新版本再收一次费。 (玩笑 |
20
18ac0877 2015-11-18 12:58:22 +08:00
gitflow +1
使用 gitflow 省事多了, git 太灵活了,反而搞的太乱 |
21
iburu 2015-11-18 14:47:01 +08:00
恩
|
22
cxq OP @paradislover 恩 这个办法好 以前的项目 我决定就这么干
@julyclyde 懂了 谢谢 看来之前是搞错了 原来是有静态和动态的区别的。 @18ac0877 @timwu 之前是看过一次 gitflow 的, 但是当时觉得每个人都装一个这个很麻烦,看来有必要用起来。 给刚接触的同事用 也很比较合适。 |
24
feuvan 2015-11-18 22:27:16 +08:00
feature branch
release tag |
25
jesse_luo 2015-11-18 22:30:43 +08:00
发布分支上打 tag ,但发布前是在预发布分支上的
|
27
cxq OP |
28
wizardforcel 2015-11-19 12:29:19 +08:00 via Android
比如发布了 1.8 你不打算更新 1.7 了 就用 tag
发布了 2.0 你还打算更新 1.x 就用 branch |