网站开发 发表文章,中英文网站建设用两个域名,长沙网站优化掌营天下,wordpress 帝国cmd原文网址#xff1a;git代码提交流程与规范-CSDN博客
简介
本文git提交流程与规范是宝贵靠谱的经验#xff0c;它能解决如下问题#xff1a;
分支差距过大#xff0c;导致合代码无数的冲突合完代码后发现代码丢失分支不清晰#xff0c;无法追溯问题合代码耗时很长…原文网址git代码提交流程与规范-CSDN博客
简介
本文git提交流程与规范是宝贵靠谱的经验它能解决如下问题
分支差距过大导致合代码无数的冲突合完代码后发现代码丢失分支不清晰无法追溯问题合代码耗时很长占用大量时间。
git的基本使用规范
git用户名要指定为名字拼音的第一个或前两个字母。比如李四(ls)张三(zhs) 不要搞稀奇古怪的英文因为这样追溯代码时不好找对应的人。要选择rebase禁用merge merge会丢代码我周围的人踩过很多这个坑。git提交清晰rebase是人类的正常思维远程的代码优先。 rebase是本地git先跟上远程git的最新提交点再去提交代码merge是让远程git以本地git为基点这样会导致本来领先的远程git又退回了
IDEA选择rebase的方法
拉代码 推代码 项目从0-1时
说明
将git分支分为主分支和临时分支。
开发阶段 develop只有这一个分支测试阶段 开发完毕后从develop新拉分支命名为test用于测试develop分支废弃若有新需求 从test新拉临时分支写代码分支命名为test_需求名代码写完后压点cherry pick到test。合到test的只有一个提交点若test已更新要选择rebase不要选择merge若有bug 小bug直接在test改大bug方法与上边“若有新需求”一致。上线阶段 测试完毕后从test新拉分支命名为prod用于测试
上线完毕后项目0-1阶段结束开启1-100阶段。删除develop分支新代码全部从prod新拉分支写。
项目从1-100时
说明
将git分支分为主分支和临时分支。
主分支test测试、pre预发布、prod生产临时分支需求点和bug修改
开发与提交流程
每个修改点需求或bug都要从prod新拉分支即临时分支合代码代码都写在临时分支合代码时从临时分支cherry pick到目的分支主分支 往test分支合代码时需要先把自己的临时分支压缩为一个点再cherry pick到test。往pre分支合代码时从临时分支cherry pick到pre分支不要从test分支cherry pick。因为test肯定有没测试的不能上pre往prod分支合代码时组员告诉组长自己的提交点由组长从临时分支cherry pick到prod分支因为pre肯定有没测试的不能上正式远程有更新时要rebase以远程为基准不要用merge以本地为基准修改点上线临时分支cherry pick到master后删除临时分支防止分支过多定期两三周对test进行清理删除test并重新从prod拉分支作为test分支。防止test与prod差距较远导致临时分支往test分支合代码时冲突很多定期两三周对pre进行清理删除pre并重新从prod拉分支作为pre分支。防止pre与prod差距较远导致临时分支往pre分支合代码时冲突很多
优点
以上步骤是我之前所在某个公司的提交流程按这个流程来做可以做到合代码基本不出问题、合代码速度快一般不会超过3分钟。
以上步骤每一步都是有原因的
从prod拉新分支可保证新分支代码是基于生产的可以保证新分支是纯粹的自己的修改点合代码时都是从临时分支cherry pick到目的分支可保证不会将其他人代码合到目的分支定期删除test、pre并从prod拉分支从临时分支合到主分支时基本不会有冲突而且可以删除test里无用的代码
感言
一个正常的功能点如果合代码超过10分钟那么项目的git管理大概率有问题。如果超过30分钟项目的git管理问题有点儿大。如果超过一个小时那么这个项目肯定是经常丢代码经常出奇怪的线上问题客户投诉率肯定很高亲眼见过。