最好是 10 个人以上的技术团队,你们面对 版本协作开发、版本上线顺序前后不一致、开发途中穿插需求或是解决 bug 、如何减少代码冲突等等,是怎么处理的呢?有什么比较好的 git 管理方法

目前我们是这样:

从 prod 单独拉一个 release 分支,然后 4 、5 个人在这个分支上开发,按功能区分模块,完成后让某个人合到 dev 、test

但是有个问题,开发的人一多,这样特别容易造成代码冲突

![image.png]( https://s2.loli.net/2024/08/08/THX3GRNmfJaScV8.png)
举报· 600 次点击
登录 注册 站外分享
56 条回复  
weixind 小成 2024-8-8 09:54:58
https://nvie.com/posts/a-successful-git-branching-model/
https://i.imgur.com/kfNNRLJ.png
就这个。feature 多 rebase develop 分支。
miaotaizi 小成 2024-8-8 10:01:39
差不多都是这样吧
shizhibuyu2023 初学 2024-8-8 10:04:52
gitflow ,代码分支自上而下的同步得写脚本之类的自动进行
冲突在所难免,超过 500 行代码就该提交下进行冲突处理和 code review 了
iMusic 初学 2024-8-8 10:05:19
我是这样的,比如大家代码都合并到 develop 分支。
开发新需求我在本地创建一个新分支比如 feat
开发完后切换到 develop 分支拉取最新代码,然后切换回 feat 分支,合并 develop 代码,有冲突解决冲突
再次切换到 develop 分支,合并 feat 代码,最后推上去

develop> git co -b feat
啪啪啪写代码
feat> git co develop
develop> git pull
develop> git co feat
feat> git rebase develop
啪啪啪解决冲突,add, rebase --continue
feat> git co develop
develop> git merge feat
deveop> git push
aababc 小成 2024-8-8 10:07:00
服务端开发,我们就比较简单了,开发的起点是 master ,从 master 创建 feature 分支,不同的项目需求创建不同的分支,然后合并到 test 进行测试,上线的时候后把 feature 直接合并到 master 。不过这么做也有一个小问题,大家在功能测试的时候比较容易互相影响,但是总体还是可控的。
catinsides 小成 2024-8-8 10:07:33
如果避免不了很多人修改同一个文件同一处代码,项目结构也得调整吧,靠 git 可能无法解决
justplaymore 小成 2024-8-8 10:11:39
“开发的人一多,这样特别容易造成代码冲突”

这个和 git 分支策略没有太大关系,根本问题是在项目本身的结构设计是否合理,功能模块划分是否清晰,每个类的职责是否足够单一。

冲突是在分配开发任务的时候就决定了的,而不是在做分支策略的时候决定的。
如果这些任务对应的代码是不够独立清晰的,那么冲突就是必然的。
DamonLin 小成 2024-8-8 10:14:42
开发前多拉开发分支的代码,不要一次性提交太多代码,多人开发冲突是难以避免的,解决冲突还是要细心。
isnullstring 小成 2024-8-8 10:27:35
一开始老项目换 Git 时候也遇到类似问题,后面重新整理代码,拆分功能
各自管各自的,冲突也减少,即使有紧急 BUG 或者需求要上都不影响
返回顶部