前几天有个朋友问我,为什么你总是那么频繁地在代码里打回车?是不是对Git不太了解?其实也不是,我用Git这么多年,不过每次用的工作流都像是在猜谜一样。不是这不对,就是那不行,直到前几天我重新研究了下,发现了一套非常适合我的Git工作流。
最早开始用Git的时候,我也跟大家一样,先clone项目,然后在本地直接开发。遇到冲突的时候,就只能祈祷别太多。然后开始了解Git的基本命令,merge,rebase,branch…可是每次切换分支,我都会陷入一种迷茫的状态:到底我应该先切换哪个分支呢?还是先rebase?
那时候我就想过,难道没有一个系统化的Git工作流可以指导我如何进行项目管理吗?答案是有的,只是我没找到。
后来我发现了一个简单粗暴的工作流——Git Flow。Git Flow定义了一套规范的工作流程,让每个团队成员都知道该如何创建分支、如何合并代码,甚至包括发布和hotfix。听起来不错,但是用了一段时间,我发现这套流程对我的团队来说并不合适。一来它太过繁琐,每个阶段的任务都很多,对于我们这种小团队来说,效率不是特别高;二来,团队里的成员对Git的使用熟练度不一,用起来很复杂。
后来我又试着用了GitHub Flow。简单来说,GitHub Flow就是一个master分支加各种feature分支和release分支,最后merge到master分支。这个工作流简单易懂,适合快速迭代的项目。但我用了一段时间后发现,虽然流程简单,但对于复杂的系统,feature分支的管理变得有点乱,而且很难把控。
再后来,我就自己琢磨出了一个工作流,它结合了Git Flow和GitHub Flow的优点。我把主分支设为master,代表主线功能,任何重要的代码更新都应该merge到这里。另外,我又加入了hotfix和release分支。
master分支下有一个develop分支,这个分支用于日常的开发。当要开始一个新的功能或者修复bug时,我从develop分支切出一个feature或者bug分支,完成后将其merge到develop分支,然后再从develop merge到master。这样可以确保代码的一致性和可追踪性。
至于hotfix分支,当生产环境中出现了严重问题需要修复时,从master切出hotfix分支修复,修复完成后再merge到master和develop。release分支则是用于准备新版本,比如测试版本、预发布版本等。
现在用了这套工作流,我发现我的团队工作效率提高了,而且对Git的使用更加规范。当然,每个团队和项目的特点都不一样,所以最好还是根据实际情况调整适合自己的工作流。
说到这,我顺便把我整理的工作流笔记贴在了我的博客上(在来写),希望能对大家有所帮助。
最后,你有没有类似的经历?欢迎在评论区聊聊你的Git工作流是如何变化的?我们一起学习交流吧~
📚 相关专题:AI提效