最近刚切换 git 协作遇到的一些问题

2017-05-09 13:06:38 +08:00
 lijsh

最近团队从 svn 迁到了 git,引出了一些问题,包括:

  1. 是不是应该有一个激进的分支,所有正在开发的最新的代码都在上面?如果不是,正在开发的(但可能还不需要上)的功能专门开个特性分支?
  2. 我们现在有个专门的 Test 分支专门用来测试,但怎么把代码从开发分支同步到 Test 分支?直接 merge ?还是一个个手动选择?因为会有些开发好的功能还不需要送测的。

以前我们人少,测试的需求也不多,所以一直运转良好,现在刚切过去 git 就遇到很多磨合问题。不知道大家的工作中是怎样的使用流程?

4227 次点击
所在节点    git
22 条回复
noe132
2017-05-09 13:31:35 +08:00
我觉得简单的话一般 master 用来发布版本

dev 用来做开发分支,稳定后 merge 到 master

不同 feature 开不同的分支,写完后 merge 到 dev



test 看你们是加在 master 和 dev 之间,还是从 feature 分支创建 test 然后再 merge 到 dev

如果情况更加复杂的话也可以分的更细
Felldeadbird
2017-05-09 13:40:50 +08:00
我司目前的做法一切基于分支操作。
master 分支与 线上永远保持一致。
dev 用于准备上线的分支。与 master 版本差异不大于 1-3 个版本(因为待上线需要部署时间,与 master 合并不会立刻完成)。
dev-test 用于各种功能测试之用。 基于 dev 分支 而来。因此可以随时回滚等操作。
dev-功能名称 每次有新功能,先基于当前 dev 创建准备开发的功能。各人员接到需求后,拉取此分支进行开发。若多人开发一个功能。那么再在此分支创建更加细化的分支。如:dev-功能名称-开发人员名称
lijsh
2017-05-09 14:05:11 +08:00
@Felldeadbird #2 那 dev-功能名称 的分支开发完了,是合到 dev 还是 dev-test ?
jessynt
2017-05-09 14:11:30 +08:00
Git Flow 应该就是你要找的
Ouyangan
2017-05-09 14:12:08 +08:00
@lijsh #3 1 楼好评 , 解决一切..
lijsh
2017-05-09 14:16:42 +08:00
@noe132 #1 谢谢指点,其实我们现在的做法和这个很像了,就是 test 分支有问题。有时功能开发完了送测,测试测不完其它紧急功能需要上线,又得把这功能先撤下…
mooncakejs
2017-05-09 14:20:50 +08:00
master 永远是 release 最新版,dev 开发,feture 开分支,test 不需要开分支,只要打 tag 就好。
wujunze
2017-05-09 14:21:19 +08:00
一楼的方案👍
Felldeadbird
2017-05-09 14:30:51 +08:00
先合并到 dev-test。 确认测试没问题再 将 dev-功能名称 分支与 dev 合并。 最后等上线就将 dev 再合并到 master。 具体你要自己本地模拟就知道了
joeyFuck
2017-05-09 14:32:10 +08:00
学习到
Chrisplus
2017-05-09 15:34:08 +08:00
linda102
2017-05-09 17:06:42 +08:00
@noe132 赞赞的👍 我们开发基本也是这样的流程。 永远保持主分支是最新的,需要开发新 feature 时,新建一个分支,这个分支上开发测试完毕后,再 merge 到 master 上,最后发布的是 master,如果有多个开发分支,merge 错误时,手动解决。如果开发分支太多混乱,用完删除就好啦~
bombless
2017-05-09 17:11:17 +08:00
没必要搞一个激进分支,但是可以根据 mile stone 搞一些 release candidate。
因为你不可能每次集成的时候都成功,所以还是需要一个分支去模拟线上的下一个版本。
lostsquirrelX
2017-05-09 17:13:12 +08:00
Biwood
2017-05-09 17:16:34 +08:00
一直在用 1 楼的方案,原则是:分支起点是哪个分支,最终还要合并回到那个分支。这种方式跟 git-flow 还是有区别的,比较容易理解,也不那么容易造成混乱。
qiqico
2017-05-09 17:52:13 +08:00
公司实习生较多,业务需求也很多,大家按任务划分分支,由较有经验的开发进行分支的创建和合并等操作,其它人只管提交。
提测时候选择提测内容,手动合并分支,再构建部署,最后上线
paranoiagu
2017-05-09 18:36:11 +08:00
搭车问个问题:推荐用 gitlab 还是 gerrit ?
shalk
2017-05-09 18:42:55 +08:00
@paranoiagu 这完全是两个东西.
shalk
2017-05-09 18:46:14 +08:00
1. 如果人少,可以考虑 develop 分支+master 可能就足够.
2. Test 分支,看你们之前是怎么处理的? 既可以开分支, 也可以不开发分支,构建的时候构建成测试版本
kier
2017-05-09 18:48:03 +08:00
@paranoiagu 用 git4 年多,最近用 gerrit,完全不会用,怀疑自己都不会 git 了

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

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

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

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

© 2021 V2EX