如何在一个仓库中同时开发前后端项目
如图,今天在群里问了个小问题
TLDR; 直接说结论吧
-
小项目直接开子目录,然后可以分别独立打包或者使用
go embed
-
不同分支的方法应该没必要用
如果想做成两个独立项目就用 submodule
gpt 对 submodule 的介绍
Git 的 Submodule 是一种在一个 Git 仓库中嵌套使用另一个 Git 仓库的机制。它允许你将一个 Git 仓库作为子项目嵌入到另一个 Git 仓库中,并且能够独立地管理子项目的版本和提交历史。
使用 Git Submodule 的主要目的是在一个项目中使用外部依赖,而不是将它们直接复制到项目目录中。这样做的好处是可以方便地更新和维护外部依赖,并且可以保持项目的独立性。
下面是使用 Git Submodule 的基本工作流程:
-
添加 Submodule:在主项目的仓库中,使用
git submodule add
命令添加一个子项目作为 Submodule。例如:1
git submodule add <URL to submodule> <submodule path>
这将在主项目中添加一个 Submodule,并将其克隆到指定的子目录中。
-
初始化和更新 Submodule:在主项目的仓库中,可以使用以下命令来初始化和更新 Submodule:
1
2git submodule init # 初始化 Submodule,只需执行一次
git submodule update # 更新 Submodule,每次子项目发生变化时执行git submodule init
命令会初始化 Submodule 并将其连接到指定的提交。git submodule update
命令会更新 Submodule 的代码,可以在每次子项目发生变化时执行该命令。 -
切换 Submodule 版本:在主项目中,你可以使用
cd
命令切换到 Submodule 的目录中,然后像在独立的 Git 仓库中一样执行各种 Git 操作,例如切换分支、提交变更等。 -
提交和更新 Submodule:当 Submodule 中发生变化并且需要将这些变化应用到主项目中时,需要先切换到主项目的根目录,然后使用以下命令进行提交和更新:
1
2
3git add <submodule path>
git commit -m "Update submodule"
git push
需要注意的是,当其他开发者克隆主项目时,Submodule 的代码不会自动获取。他们需要执行
git submodule init
和git submodule update
命令来获取和更新 Submodule 的代码。使用 Git Submodule 需要注意以下几点:
- Submodule 是一个独立的 Git 仓库,具有自己的提交历史和版本管理。
- 主项目只保存 Submodule 的元数据和连接信息,而不会包含 Submodule 的实际代码。
- 主项目和 Submodule 是两个独立的仓库,需要分别进行操作和管理。
- Submodule 可以是公共的仓库(如 GitHub 上的仓库)或者是私有的仓库。
Git Submodule 是一种强大的工具,可以帮助你管理项目中的外部
依赖,并与主项目保持独立和可维护。但同时也需要注意它的复杂性和正确的使用方式,以避免出现问题。
submodule有个好处是子模块也是个仓库 比如博客主题这种就可以主题一个仓库 然后demo仓库引用主题的仓库这样同步
-
-
类似的玩法还有 monorepo ,不过前端和后端go没啥基础设施共享 没有monrepo的场景