睢宁县建设局网站,wordpress优化软件,运城网站制作,杭州公司网站制作维护目录 一、多人协作 (一)多人协作一 1、情景 2、 origin/master 3、git branch 4、远程链接 5、总结 (二)多人协作二 1、引言 2、情景 3、流程 4、解决方法 二、企业级开发模型 1、DevOps背景 2、DevOps是什么 3、DevCps与git的关系 4、系统开发环境 5、Git分支设计规范 6、企业… 目录 一、多人协作 (一)多人协作一 1、情景 2、 origin/master 3、git branch 4、远程链接 5、总结 (二)多人协作二 1、引言 2、情景 3、流程 4、解决方法 二、企业级开发模型 1、DevOps背景 2、DevOps是什么 3、DevCps与git的关系 4、系统开发环境 5、Git分支设计规范 6、企业级项目管理一般流程 7、开发场景一基于gitflow模型的实战 一、多人协作 (一)多人协作一 1、情景 目标master分支下file.txt文件新增代码“aaa”、“bbb” 实现由开发者1新增“aaa”由开发者2新增“bbb” 条件在一个分支下协作完成 2、 origin/master 目前我们的仓库中只有一个master主分支但在实际的项目开发中在任何情况下其实都是不允许直接在master分支上修改代码的这是为了保证主分支的稳定。所以在开发新功能时常常会新建其他分支供开发时进行迭代使用。 3、git branch 只能查看本地分支要查看远程分支需要加上-r选项。但前提是要pull一下拉取最新的远程仓库才能看到最新的内容 4、远程链接 切换到本地dev分支将本地的dev与远程dev进行关系链接 //在切换到dev分支就与远程dev连接 git checkout -b dev origin/dev //在创建本地dev后忘记连接远程dev可以使用 git branch --set-upstream -toorigin/der dev 5、总结 在同一分支下进行多人协作的工作模式通通常是 ①首先可以试图用git push origin [branch-name]推送自己的修改 ②如果推送失败则因为远程分支比本地内容新需要先用git pull试图合并 ③如果合并冲突则解决冲突并在本地提交 ④解决后再用git push origin dev推送就能成功 ⑤功能开发完毕将分支git merge dev进master最后删除分支 (二)多人协作二 1、引言 一般情况下如果有需求需要多人同时进行开发是不会在一个分支上进行多人开发而是一个需 或一个功能点就要创建一个feature分支。 2、情景 目标远程master分支下新增func1和func2文件 实现由开发者1新增func1由开发者2新增func2 条件在不同分支下协作完成 3、流程 (1)开发者1 git branch git checkout -b feature-1 #新增本地分支fecature-1并切换 vim func1 #新增需求内容 cat func1 #查看 git add func1 #添加到暂存区 git commit -m add func1 #添加版本库 git push origin feature-1 #将feature-1分支推送到远端 (2)开发者2同理在 feature-2进行专业的开发了 (3)某天开发者2生病需要你帮助他继续开发这时你就需要切换到 feature-2分支帮忙开发了 git pull #必须先拉取远端仓库内容 git branch -a #可以看到远程已经有了feature-2 git checkout -b feature-2 origin/feature-2 #切换到 feature-2分支上可以和远程的feature-2分支关联起来否则将来只使用git push推送内容会失败 vim func2 cat func2 git add func2 ait commit -m modify func2 git push origin feature-2 (4)这时你的小伙伴开发2修养好了可以继续他自己的开发工作了那么他首先要获取到你帮他开发的内容接着继续开发。 git pull #失败了并未pull下来开发/帮忙写的代码是因为开发2没有指定本地feature-2分支与远程 origin/featnre-2分支的链接。 git branch--set-upstream -toorigin/freature-2 fenture-2 (5)各自开发完毕后需要合并到master才算完成 (6)开发2开始merge. git checkout master git pull #保证本地masler是最新的内容. git checkout feature-2 #切到 feature-2分支合并master git merger master #无冲突就继续 git checkout master git merge feature-2 git push origin master #将本地master推到远程 (7)开发者1同理完成后featnre-1可直接在远程仓库删除 4、解决方法 远程分支删除后本地git branch -a仍能看到的解决方法 git remote show origin #查看remote 地址远程分支还有本地分支与之相对应关系等 git remote prune origin #删除远程仓库不存在的分支 二、企业级开发模型 1、DevOps背景 一个软件从0开始到最终交付大概包括以下几个阶段规划编码、构建、测试、发布、部署和维护软开 测 运维但在传统的IT组织下开发团队(Dev)和运维团队(Ops)之间的诉求不同双方利益冲突不利于实现IT价值的最大化 开发团队追求变化 运维团队追求稳定 2、DevOps是什么 1为了保障开发和运维之间的鸿沟需要在文化工具和实践方面的系统变革——DevOps就出现了 2Dev Ops(Development 和Operations的组合词”是一种重视“软件开发人员(Dev)和”IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程、来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。在DevOps的软件开发过程包含计划、编码、构建、测试、预发布、发布 维、监控、由此可见DevOps的强大 3、DevOps与git的关系 一个软件的迭代在我们开发人员看来说白了就是对代码进行迭代那么就需要对代码进行管理。如何管理我们的代码呢那不就是git(分布式版本控制系统)——所以git对于我们开发人员来说其重要性就不言而喻了。著名的gitee码云就是一种DevOps平台 4、系统开发环境 1开发环境开发环境是程序员专门用于日常开发的服务器。为了开发调试方便一般打开全部错误报告和测试工具是最基础的环境 2测试环境一个程序在测试环境工作不正常那么肯定不能把它发布到生产机上该环境是开发环境到生产环境的过渡环境 3预发布环境该环境是为避免因测试环境和线上环境的差异等带来的缺陷漏测而设立的一套环境。其配置等基本和生产环境一致目的是能让我们发正式环境更有把握 4生产环境是指正式提供对外服务的线上环境 5、Git分支设计规范 1) 分支名称适用环境master主分支生产环境release预发布分支预发布/测试环境develop开发分支开发环境feature需求开发分支本地hotfix紧急修复分支本地 (2)master分支 ①为主分支为只读且唯一。用于部署到正式发布环境一般由合并release分支得到 代码 ②作为稳定的唯一代码库不允许直接在master上修改 ③master分支的推送应该打标签(tag)做记录方便追溯 ④ master分支不可删除 (3) release分支 ①release为预发布分支基于本次上线所有的feature分支合并到develop分支之后基于develop分支创建。可以部署到测试或须发布集群。 ②命名以release/开头建议的命名规则release/version_publishtime ③主要用于提支给测试人员进行功能测试。发布提测阶段会以release分支代码为基础进行提测 ④如果在release分支测试出问题需要回归验证develop分支看是否存在此问题 ⑤releau属于临时分支产品上线后可选删除 (4)develop分支 ①develop为开发分支基于master分支创建的只读且唯一分支始终保持最新完成以及bug修复后的代码。可部署到开发环境对应集群 ②可根据需求大小程度确定是由feature分支合并还是直接在上面开发(非常不建议) (5)feature分支 ①feature分支通常为新功能或新特性开发分支以develop分支为基础创建feature分支 ②命名以feature/开头建议的命名规则feature/user_createtime_feature. ③新特性或新功能开发完成后开发人员需合到develop分支 ④一旦该需求发布上线便将其删除 (6)hotfix分支 ①为线上bua修复分支或补丁分支主要用于对线上的版本进行bug修复。当线上出现紧急问题need马上修复需要基于masber分支创建hotfix分支 ②命爷以hotfix/开头建议的命名规则hotfix/user_creatime_notfx③当问题修复完成后need合并到master分支和develop分支并推送远程一旦修复上线可删 以上跟大家分享的是企业级常用的一种git分支设计规范git flow模型。但是还是要说的是该模型并不适用于所有团队。最主要的还是需要站在团队以及项目的角度组看这个模型是否能简洁的解决问题 6、企业级项目管理一般流程 (1)准备工作 DevOps研发平台—gitee 企业版 (2)创建项目 (3)创建仓库 (4)添加成员 7、开发场景一基于gitflow模型的实战 (1)新需求加入 现有一个订单管理的新需求need开发首先可以基于develop分支创建一个feature/xxxx_20241024分支 ①需求在 分支开发完毕这时研发人员可以将代码合并到develop分支将其部署在开发环境的服务器中方便开发人员进行测试和调试 a、开发者在feature分支下发起请求评审 b、审查员审查代码 C、审查通过合并分支 d、合并成功、查看结果 ②在develep下开发人员自测通过后先确定下develop不存在 未测试完毕的需求然后研发人员可基于develop分支创建一个release/xxx分支出来可交由测试人员进行测试 ③测试人员测试release通过后就可将代码合并入master ④测试人员在master测试通过后便可删除feature/xxx分支 (2)修复测试环境Bug 在develp测试出现了Bug建议在feature分支上修复 (3)修复预发布环境Bug 在release测试出现了Bug首先要回归develop分支是否同样存在问题 (4)修复正式环境Bug 在master测试出了问题要回归release和develop (5)紧急修复正式环境Bug 上线后出现Bug紧急修复的。可基于master创建hotfix/xxxx分支修复后发布到master验证完毕后将master合并到develop同时删掉hotfix/×xx分支