在github开源你的前后端分离项目

前言

其实完整来说,应该是⌈优雅⌋的在github开源你的前后端分离项目。

这时候就会有人说了,开源项目还不简单吗。就算不会,网络上的教程也是比比皆是。但是,我的文章突出的是一个⌈优雅⌋,当别人看到你的项目时,怎么才能让他更简单的读懂并使用你的开源项目。

我们的项目发布是有版本的,比如说v1.0.0,v2.0.13之类的。此时我们有一个前端仓库和一个后端仓库,如何发布它们的版本并且保证它们两的版本是兼容的呢?想象一下这样的场景:用户下载了你的后端v1.2.0,却不知道应该搭配哪个前端版本,结果遭遇各种兼容性问题。良好的版本管理能避免这种混乱,让你的项目显得专业且易于使用。下面我们们细细的探究一下。

⌈优雅⌋开源

发布版本

先说如何发布版本,开发过程中,我们会频繁的创建commit,这是代码的历史记录点。当你已经把确定为该版本的代码最后一次push到了远程仓库,标志着我们发布版本的任务开始。那么就先会牵扯到版本该如何命名,版本号的结构:MAJOR.MINOR.PATCH

  • 主版本号(MAJOR):有不兼容的API修改
  • 次版本号(MINOR):向下兼容的功能新增
  • 修订号(PATCH):向下兼容的问题修正

不过我自己在这方面以及我看别人的开源项目在这方面的概念都比较模糊,并不都严格遵守。下面是一个具体开源版本发布的示例。

shell 复制代码
# 确定当前版本的代码并推送
git push origin main

# 创建带注释的标签
git tag -a v1.0.0 -m "发布新版本v1.0.0:第一个版本!"

# 推送标签到远程
git push origin v1.0.0

接下来就是进入远程仓库的网站,以github为例,进入仓库页面后点击Releases,接着Draft a new Release,选中目标版本的tag并对当前版本信息做详细描述(建议有自己的一套模板),即为发布成功!

元仓库

那么我们说回前后端版本兼容的情况,开发者面对我们的前端和后端的仓库的多样的版本,并不清楚应该将哪两个版本相互匹配,而在README中指明,显然不是一个有强指引效果的⌈优雅⌋的方案。而使用元仓库,就能很好的将两个仓库关联起来,它不包含实际业务代码,而是提供项目的全景视图导航功能

现在,我们以Auth-Matrix为例。在已经有了前后端仓库并且发布了相互兼容的版本的前提下,比如auth-matrix-backend v1.0.0以及auth-matrix-frontend v1.0.1。

shell 复制代码
# 我们先初始化元仓库
mkdir auth-matrix
cd auth-matrix
git init

# 接着添加前后端仓库到元仓库
# 或者通过ssh方式,都行
git submodule add https://github.com/thirty30ww/auth-matrix-backend.git
git submodule add https://github.com/thirty30ww/auth-matrix-frontend.git

# 拉取所有子模块最新代码
git submodule update --init --remote

# 选择兼容的要发布的版本
cd ./backend
git checkout v1.0.0
cd ../frontend
git checkout v1.0.1

# 6. 提交版本锁定
git add .
git commit -m "发布我的第一个前后端兼容版本!"

# 7. 创建元仓库版本标签
git tag -a v1.0.0 -m "发布新版本v1.0.0:第一个版本!"

# 8. 推送更新
git push origin v1.0.0

这样就有了一个前后端兼容的元仓库tag了,和上面的步骤一样release

总结

通过元仓库的巧妙设计,我们为前后端分离项目构建了清晰的版本桥梁。如上图所示,开发者现在可以:

  1. 从元仓库的README快速掌握项目全貌
  2. 通过GitHub Releases获取经过验证的兼容版本组合
  3. 一键克隆即可获得完美匹配的前后端代码

这种设计既保持了组件独立性,又解决了版本兼容的痛点,让开源协作变得简单而优雅。

想查看实际效果?欢迎参考我的开源项目:Auth-Matrix

相关推荐
纵有疾風起2 小时前
C++——类和对象(3)
开发语言·c++·经验分享·开源
草梅友仁4 小时前
草梅 Auth 1.10.1 发布与浏览器自动化工具 | 2025 年第 42 周草梅周报
开源·github·自动化运维
惘嘫、冋渞4 小时前
Centos7 自建Umami-开源免费的网站访问流量统计分析平台
开源
说私域4 小时前
基于多模态AI技术的传统行业智能化升级路径研究——以开源AI大模型、AI智能名片与S2B2C商城小程序为例
人工智能·小程序·开源
说私域8 小时前
基于开源AI大模型、AI智能名片与S2B2C商城小程序的购物中心精准零售数据架构研究
人工智能·小程序·开源
CoderJia程序员甲8 小时前
GitHub 热榜项目 - 日榜(2025-10-18)
ai·开源·大模型·github·ai教程
说私域9 小时前
开源链动2+1模式、AI智能名片与S2B2C商城小程序:社群经济的数字化重构路径
人工智能·小程序·开源
正在走向自律10 小时前
大数据背景下时序数据库选型指南:国产开源技术的突破与实践
大数据·开源·时序数据库
ajassi200010 小时前
开源 Linux 服务器与中间件(三)服务器--Nginx
linux·服务器·开源
万岳软件开发小城11 小时前
AI数字人系统源码+AI数字人小程序开发:2025年热门AI项目
人工智能·开源·软件开发·app开发·ai数字人小程序·ai数字人系统源码