git 搞分支的问题

2020-09-10 10:33:09 +08:00
 yeqizhang

你们平时开发是像 github 一样 fork 后再 clone 这个仓库开发?

还是 clone 原仓库,基于原仓库的 master 开一个分支开发?

我们项目几十号人,我给了他们 fork 权限,发现部分人是 fork 后进行开发的,一个月都没 pull 到原仓库了。

3937 次点击
所在节点    git
26 条回复
erwin985211
2020-09-10 10:39:06 +08:00
虽然我不太懂,但是你们开发前都不合并一下最新代码的吗,这样做你们是怎么合并代码上线的
linxb
2020-09-10 10:41:12 +08:00
不需要 fork 吧,拉取原仓库代码,开发的时候每个人基于 master 主干 checkout 分支做开发
aimaodeyuer
2020-09-10 10:44:27 +08:00
1.clone 原仓库
2.master 拉新开发分支
3.开发完了往 dev 固定分支合并测试
4.dev 通过后上 QA,开发分支合到 QA 的 release 分支测试
5.QA 验证通过,用 release 部署线上
6.master 回合 release
7.周而复始
goodboy95
2020-09-10 10:44:43 +08:00
fork 的好处是能做代码审查,如果不放心他们的代码质量就 fork,提交的时候让他们提 merge request 。
如果没啥不放心的就直接 clone 吧。
zaul
2020-09-10 10:45:08 +08:00
拉取原仓库代码,开发的时候每个人基于 master 主干 checkout 分支做开发
KuroNekoFan
2020-09-10 10:47:17 +08:00
githubflow 加一个平行于 master 的 test/dev 分支
swulling
2020-09-10 10:52:11 +08:00
你要用 github,那就是 fork 多代码库加 pull request,或者多分支加 pull request

但是我个人更喜欢 gerrit 的 cr 模式
floyda
2020-09-10 10:55:34 +08:00
fork 就用 PR 的方式提交代码, 对审核者不太友好, 面临冲突的可能比较多.
如果人多, 不建议在同一个分支上并行开发, 这样相当于把解决冲突的任务分散到组员身上, XJB 乱改就不好了.

如果十几个人, 可以按功能划分 submodule

不 pull 那就是管理的问题了
hakono
2020-09-10 10:56:50 +08:00
又不是给开源项目贡献代码,fork 实在是太麻烦了

基本都是 clone 后建分支然后 pull request

如果不信任的话设置好权限和用户组就行了
yeqizhang
2020-09-10 11:08:30 +08:00
@floyda 嗯,已经是很多子模块,冲突不大可以直接拉分支弄的。跨部门的多个项目,他们 fork 后不 pull 倒是问题不大,就是我找了挺久都没看到他们最新有提交代码,我都怀疑他们另起炉灶去搞了仓库,没想到是 fork 派生了
ghostcode
2020-09-10 11:11:15 +08:00
按照 git flow
chendy
2020-09-10 11:19:36 +08:00
自家项目还 fork 个啥,控制分支权限,主干分支必须 pr 就行了
leopod1995
2020-09-10 11:30:16 +08:00
保持良好习惯,fork 之后的好处在于自己的 repo 想怎么玩怎么玩你
xhinliang
2020-09-10 12:08:16 +08:00
1. Git Flow
2. GitHub Flow
3. GitLab Flow
4. TBD

一般就这四种,三楼那个我觉得是不太规范的。
j2gg0s
2020-09-10 12:28:08 +08:00
https://nvie.com/posts/a-successful-git-branching-model/ 建议走 feature,在同一个 repo 开发就好
oneisall8955
2020-09-10 12:36:13 +08:00
master checkout 出 dev,dev 按需求名称和日期 checkout 出需求分支,相关人都在需求分支开发,不同需求不同分支,qa 时候用 dev 合并对应需求分支,qa 验证过合到 master,master 上生产,我司大致流程这样
yeqizhang
2020-09-10 12:51:23 +08:00
@erwin985211 我们是多个子工程独立的,只是有一个 common,所有子工程都放在一个仓库里而已。一般不会在 common 模块写东西,各个部门之间基本上不会有冲突,只部署自己的那个引用 common 模块的工程。
gromit1337
2020-09-10 14:59:58 +08:00
我现在的公司一个版本一个分支的开发,现在已经不知道有多少个分支了,不敢说话🙊
maichael
2020-09-10 15:04:11 +08:00
@goodboy95 #4 切分支也一样可以 review 的。
maichael
2020-09-10 15:05:52 +08:00
其实没有本质上区别,你 fork 出来一个仓库其实也是一个分支,重点都还是看你们项目代码的主分支是怎么管理的。

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

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

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

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

© 2021 V2EX