在现代软件开发中,版本控制是一个关键的环节,而Git作为最流行的分布式版本控制系统,为团队协作、代码管理和发布提供了强大的工具和功能。本篇博客将深入探讨Git的使用,重点讲解开发测试上线流程、分支管理和标签的应用技巧,帮助读者更深入地理解和应用Git,提高开发效率和代码质量。
dev/test/pre/pro(即master)
dev-开发环境–Windows(自己的电脑)
test-测试环境–Windows/Linux
pre-灰度环境
pro-正式环境
Tag格式: 主版本号.次版本号.修订号-类型标签,其中类型标签可为:alpha、beta、rc、r。
Tag示例:1.0.0-alpha、1.0.0-beta、1.0.0-rc、1.0.0-r
注1:有的公司在版本命名时,前面加v,“-”替换成“_”,更加详细一点还可以在修订号后面添加发布日期
v1.0.0.191220_r,这都是可以的
dev–>alpha
test–>beta
pre–>rc
pro–>r
假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,
不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
怎么办?
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,
而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作
四个环境分别是:dev、test、pre、pro(master),中文名字:开发环境、测试环境、灰度环境、生产环境
dev环境:开发环境,外部用户无法访问,开发人员使用,版本变动很大。
test环境:测试环境,外部用户无法访问,专门给测试人员使用的,版本相对稳定
pre环境:灰度环境,外部用户可以访问,但是服务器配置相对低,其它和生产一样。
pro(master)环境:生产环境,面向外部用户的环境,连接上互联网即可访问的正式环境。
在实际开发中,我们应该按照几个基本原则进行分支管理:
1.首先,pro分支(即master)应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
2.那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,
再把dev分支合并到master上,在master分支发布1.0版本
3.修复bug时,我们会通过创建新的bug分支(即test)进行修复,然后合并,最后删除;
4.当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
2.2 高级分支策略与开发流程
在实际项目中,我们经常需要使用不同的分支策略来管理开发流程。本节将深入讨论主分支保护与长期分支管理、功能分支与短期任务开发以及临时分支与bug修复的最佳实践。
2.3 分支合并技巧与最佳实践
分支合并是Git中常见的操作,但也容易引发冲突和历史混乱。本节将介绍使用rebase进行线性历史和干净的合并、利用补丁和cherry-pick选择性合并,以及小组协作中的分支推送和拉取策略。
2.4 分支策略与工作流程案例分析
不同的团队和项目可能适用不同的分支策略和工作流程。在本节中,我们将分析GitFlow工作流程和GitHub Flow在敏捷开发中的应用,并探讨如何自定义分支策略以适应团队的需求和项目的特点。
然后test测试分支把不合格的文件删掉
删掉之后git status就会看到
然后图形化,提交
然后切换到master
再合并test
我这里之前的不合格没提交,所以保留了下来
这个时候本地分支就搞好了,接下来搞远程分支
切换到dev分支,再进行远程操作,输入(git push origin dev回车)
然后是test,master
接下来为用到的代码作解释
3.2 语义化版本控制与标签管理
在软件开发中,语义化版本号能够清晰地说明不同版本之间的差异和兼容性。本节将探讨如何使用语义化版本号规范项目的版本,并讲解如何根据版本号进行标签管理和发布。
现在出现这厶一种情况,原有的分支修复了代码异常问题需要重新提交,可以这么做
把这两个提交,然后在dev分支重新增加标签,并推送
通过本篇博客的深度讲解,我们详细探索了Git的高级使用技巧,包括开发测试上线流程、分支管理和标签的应用。希望读者能够从中获得实际可行的工具和方法,提升团队的协作效率、代码质量和发布过程的可靠性。请注意,以上只是每个知识点的概述,您可以根据需要进一步扩展和深入研究每个主题。祝愿您在Git实践中取得更好的成果!