项目做着做着,突然发现主分支代码跑不起来,一查提交记录,七八个人的改动混在一起,谁改的啥根本分不清。这种情况,八成是Git分支策略没整明白。
别再所有人直接往main上提了
新手团队最容易犯的错误就是大家全往main分支提交。你改登录,他动支付,我调首页,合并时冲突满天飞。改个按钮颜色,结果把数据库连接关了,服务直接挂掉。
正确的做法是每人开独立功能分支。比如你要加个用户头像上传功能:
git checkout main
git pull origin main
git checkout -b feature/user-avatar-upload
功能分支怎么命名才不乱
别叫什么 branch1、new_code 这种名字。建议用类型+简短描述,比如:
feature/user-profile—— 新功能fix/login-crash—— 修复bughotfix/payment-error—— 紧急线上修复docs/api-update—— 文档更新
这样一目了然,谁都知道这个分支干啥的。
合并请求不是点了就完事
很多人开了Merge Request(或Pull Request),然后等别人点合并。但光等不行,得主动拉人review。最好自己先检查一遍:有没有多余调试代码?有没有漏提交的文件?测试过没?
另外,别一次性塞几百行代码让别人看。拆成小块提交,每次只改一个点,review的人也愿意看。
线上出问题怎么办
线上炸了不能直接修main。应该从最新的main或生产标签切出一个hotfix分支:
git checkout -b hotfix/login-500-error main
修完后先合并回main,再打tag发版。最后记得把hotfix合并到develop或其他开发主线,不然下次发布还得重修一遍。
develop分支才是日常开发主战场
很多人只知道main和自己的小分支。其实可以设一个develop作为日常集成分支。所有功能做完都先合到develop,测试稳定后再批量合进main。
这样main永远保持可发布状态,不会因为某个半成品功能导致整个项目不可用。
删分支这事儿别偷懒
功能上线后,本地和远程那些feature分支赶紧删。留着不仅看着乱,还容易误操作切回去继续改。
git branch -d feature/user-avatar-upload
git push origin --delete feature/user-avatar-upload
定期清理,仓库才清爽。
遇到冲突别怕,但要会处理
合并时提示冲突很正常。关键是打开文件看差异,搞清楚哪段是你改的,哪段是别人改的。别瞎删,尤其涉及配置文件或接口调用的地方。
改完记得手动测试一下相关功能,确认没引入新问题再提交。
一套清晰的分支策略,就像厨房里的调料架,每样归位,用时好找。别等到代码乱成一锅粥才想起来整理。