Git 多人合作的一点经验
2019-05-19 14:53
#旧文章
经过接近半年的中等规模项目(200 个页面这样)的开发,我渐渐找到了一种在 Git 上合作的模式。
提交规则
提交的文件不能出现与本地开发有关的配置,即那些会损坏别人开发环境的代码,比如
.idea
文件夹,有一次有一个合并请求里包含了这个文件夹,我本地合并测试的时候我的 webstorm 直接炸了vue.config.js
中 devServer 的配置
提交的文件必须遵循项目的代码规范(代码风格、命名规则)。
不要去改别人的代码,别人的代码有问题的话应该发起一个 issue,即使你本地修改能用了也不要提交,别人的代码别人负责。
提交的代码中不要出现成片注释掉的代码。
提交信息(commit message)应该要能概括本次提交的内容,要让别人看到提交信息就知道这一次提交做了什么。
分支
Git 上最重要的一个东西就是分支,在我的新体系中有这么几种类型的分支
- master
主分支,保护分支,存放随时可供发布的代码版本。 - dev
开发分支,保护分支,当 dev 分支上的代码稳定后并且新功能完备后,将 dev 合并至 master。 - feature-xxx
功能分支族,在我的项目中也可命名为 view-xxx,表明这个分支开发的是哪一个功能。当要开发新功能时,从 dev 拉出去一条 feature 分支,开发人员在这条分支上工作,当这一分支的功能开发完毕、测试可用后合并至 dev。 - hotfix-xxx
热修复分支族,用于修复 dev 上的 bug,修复完成测试后合并至 dev。
分支管理
master 和 dev 是受保护的分支,即只有项目管理员才能修改的分支。
开发人员在 feature 分支族上工作,在功能完善后,发起合并请求,合并请求的代码必须完全遵守上面的提交规则,由管理员审核后合并入 dev。
如果开发分支仅存在于本地,在开发完成后可以将开发分支 rebase 至最新的 dev 再推送至远端发起合并请求。如果分支已存在于远端,无论如何都不应该进行 rebase 操作。
为了方便合并请求的审核,每个 feature 分支上的新功能规模不应该过大,如果规模过大最好考虑进行细分。
后记?
先写这些吧,等想到什么再补充。
另外,项目成员必须要遵守项目组的规定,代码风格也好,Git 管理模式也好,如果觉得有问题应该跟组里讨论,但无论如何你都必须按照规定办事。