把前后端两个项目放进同一个 Git 仓库,核心就两步:先让它们变成同一个仓库下的两个子目录,再统一提交推送。最关键的坑是后端目录里残留的 .git 文件夹,不清掉的话 Git 会把前后端当成两个独立仓库,提交时永远只有前端。
推荐目录结构
把前后端放在一个总目录下,作为两个平级子目录:
MyProject/
├── frontend/ 前端代码(Vue/React 等)
├── backend/ 后端代码(Spring Boot/Django 等)
├──.gitignore 忽略依赖和构建产物
└── README.md
这种结构对个人项目、课程设计和中小型项目最方便,一个仓库就能看全项目、统一管 Issue 和提交。
操作步骤
- 整理目录
- 把前端和后端代码分别放进
frontend/和backend/文件夹。 - ⚠️ 重点:检查这两个文件夹里有没有隐藏的
.git目录,如果有就直接删掉。这是最常见的坑,残留的.git会让 Git 认为后端是独立仓库。
-
初始化仓库
在总目录
MyProject下执行:bashgit init -
配置.gitignore
在根目录创建
.gitignore,至少忽略这些内容:bash前端依赖和构建 frontend/node_modules/ frontend/dist/ 后端构建产物 backend/target/ backend/build/ 其他 .env *.log✅ 忽略的是依赖和构建结果,前后端源代码不会被忽略。
-
添加并提交
bashgit add. git commit -m "init: 前后端项目合并提交" -
关联远程仓库并推送
bashgit remote add origin https://github.com/你的用户名/你的仓库名.git git push -u origin main 或 git push -u origin "master"如果远程仓库已经有文件(比如 README),需要先拉取合并:
bashgit pull origin main --allow-unrelated-histories git push -u origin main--allow-unrelated-histories用于合并两个没有共同历史的仓库,首次推送时经常需要。
常见问题排查
如果提交时只看到前端、后端一直不出现,按下面顺序检查:
- 删干净
.git:确认backend/和frontend/里没有.git文件夹,这是 90% 情况的原因。 - 检查
.gitignore:确认没有backend/或frontend/这样的整目录忽略规则。 - 用
git status确认:提交前先看git status,应该能看到前后端所有文件都被追踪,而不是只有前端。
另一种思路:用孤儿分支隔离
如果想让前后端代码在同一个仓库但提交历史完全隔离,可以用 git checkout --orphan 创建孤儿分支。每个分支有独立的提交历史,互不影响。
但这属于进阶玩法,适合对 Git 比较熟悉的场景;日常用前面说的子目录方案就足够了。