JavaScript开发者的Git工作流:如何不搞垮生产环境

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Git不是魔法,而是一个工具。但你需要学会使用它



如果你用JavaScript编写代码,那么你很可能遇到过这样的情况:在一次git merge之后,整个控制台亮起红灯,而Slack里消息不断:“谁搞坏了构建?”熟悉吗?欢迎来到一个世界,在这里Git工作流不仅仅是一组命令,而是支撑整个开发的基础。



在本文中,我们将讨论的不是抽象的理论,而是针对JavaScript开发团队的真实工作流程。你将了解如何组织分支、设置代码审查、不害怕rebase以及自动化日常任务。我们开始吧。



为什么标准的“git add — git commit — git push”在团队中行不通?



当只有一个人在一个项目上工作时,分支混乱是个人的事。但是一旦第二个、第三个、第十个开发者加入仓库,没有清晰的Git工作流,混乱就开始了。冲突、丢失的提交、像“fix”或“upd”这样含义不明的消息——所有这些都会扼杀生产力。



对于JavaScript项目(React、Node.js、Next.js),问题更加严重,因为依赖项、构建文件和配置文件经常变化。一次错误的合并——你就会花半天时间搞清楚为什么npm run build不工作了。



因此,让我们制定一个统一的标准。我们称之为“JS团队的纯净Git工作流”。



基础:分支模型



我们将使用经典的Git Flow,并针对现代JavaScript技术栈进行一些小的调整。你不需要10种分支。四种就足够了:



  • main — 生产分支。只有经过审查和测试的稳定代码才能进入这里。
  • develop — 主要开发分支。所有功能都合并到这里。
  • feature/* — 用于新功能的分支。命名要有意义:feature/add-auth-modal。
  • fix/* — 用于错误修复。例如,fix/api-timeout-error。


这个集合对于90%的项目来说已经足够了。想要更硬核?添加release/*用于准备发布,以及hotfix/*用于生产环境的紧急修复。



示例:创建功能分支



假设你需要用React添加一个反馈表单。不要在develop分支上做。创建一个单独的分支:



git checkout developgit pull origin developgit checkout -b feature/contact-form


现在你在隔离环境中工作。可以搞破坏、做实验、写糟糕的代码——这不会影响到任何人。



提交:写得让你不会感到羞愧



提交信息是你代码的文档。如果你写git commit -m "fix",你是在给同事和一个月后的自己增加麻烦。请遵循Conventional Commits。这是一个易于阅读且能被工具自动解析的标准。



格式:



<类型>(<范围>): <描述>

[可选的提交正文]


JavaScript项目的类型:

  • feat — 新功能
  • fix — 错误修复
  • refactor — 重构
  • docs — 文档
  • chore — 日常事务(更新依赖、配置linter)


一个好的提交示例:



feat(contact-form): add form validation with Yup

- Added Yup schema for name, email, message fields- Display inline errors on blur- Disable submit button when form is invalid


这样的提交立即说明:做了什么,在哪里做的,以及为什么做。非常适合代码审查。



代码审查:不要害怕批评,要害怕错误



代码审查不是考试,而是在错误进入生产环境之前捕获它的方法。在一个好的代码

博客

书籍推荐