把前后端两个项目放进同一个 git 仓库,核心就两步:先让它们变成同一个仓库下的两个子目录,再统一提交推送。
最关键的坑是后端目录里残留的 .git 文件夹,不清掉的话 git 会把前后端当成两个独立仓库,提交时永远只有前端。
推荐目录结构
把前后端放在一个总目录下,作为两个平级子目录:
myproject/ ├── frontend/ 前端代码(vue/react 等) ├── backend/ 后端代码(spring boot/django 等) ├──.gitignore 忽略依赖和构建产物 └── readme.md
这种结构对个人项目、课程设计和中小型项目最方便,一个仓库就能看全项目、统一管 issue 和提交。
操作步骤
1.整理目录
- 把前端和后端代码分别放进
frontend/和backend/文件夹。 - 重点:检查这两个文件夹里有没有隐藏的
.git目录,如果有就直接删掉。这是最常见的坑,残留的.git会让 git 认为后端是独立仓库。
2.初始化仓库
在总目录 myproject 下执行:
git init
3.配置.gitignore
在根目录创建 .gitignore,至少忽略这些内容:
前端依赖和构建 frontend/node_modules/ frontend/dist/ 后端构建产物 backend/target/ backend/build/ 其他 .env *.log
忽略的是依赖和构建结果,前后端源代码不会被忽略。
4.添加并提交
git add. git commit -m "init: 前后端项目合并提交"
5.关联远程仓库并推送
git remote add origin https://github.com/你的用户名/你的仓库名.git git push -u origin main 或 git push -u origin "master"
如果远程仓库已经有文件(比如 readme),需要先拉取合并:
git 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 比较熟悉的场景;日常用前面说的子目录方案就足够了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论