git实现前后端分离项目提交同一个仓库

把前后端两个项目放进同一个 Git 仓库,核心就两步:先让它们变成同一个仓库下的两个子目录,再统一提交推送。最关键的坑是后端目录里残留的 .git 文件夹,不清掉的话 Git 会把前后端当成两个独立仓库,提交时永远只有前端。

推荐目录结构

把前后端放在一个总目录下,作为两个平级子目录:

复制代码
MyProject/
├── frontend/        前端代码(Vue/React 等)
├── backend/         后端代码(Spring Boot/Django 等)
├──.gitignore       忽略依赖和构建产物
└── README.md

这种结构对个人项目、课程设计和中小型项目最方便,一个仓库就能看全项目、统一管 Issue 和提交。

操作步骤

  1. 整理目录
  • 把前端和后端代码分别放进 frontend/ 和 backend/ 文件夹。
  • ⚠️ 重点:检查这两个文件夹里有没有隐藏的 .git 目录,如果有就直接删掉。这是最常见的坑,残留的 .git 会让 Git 认为后端是独立仓库。
  1. 初始化仓库

    在总目录 MyProject 下执行:

    bash 复制代码
    git init
  2. 配置.gitignore

    在根目录创建 .gitignore,至少忽略这些内容:

    bash 复制代码
    前端依赖和构建
    frontend/node_modules/
    frontend/dist/
    
    后端构建产物
    backend/target/
    backend/build/
    
    其他
    .env
    *.log

    ✅ 忽略的是依赖和构建结果,前后端源代码不会被忽略。

  3. 添加并提交

    bash 复制代码
    git add.
    git commit -m "init: 前后端项目合并提交"
  4. 关联远程仓库并推送

    bash 复制代码
    git remote add origin https://github.com/你的用户名/你的仓库名.git
    git push -u origin main 或 git push -u origin "master"

    如果远程仓库已经有文件(比如 README),需要先拉取合并:

    bash 复制代码
    git pull origin main --allow-unrelated-histories
    git push -u origin main

    --allow-unrelated-histories 用于合并两个没有共同历史的仓库,首次推送时经常需要。

常见问题排查

如果提交时只看到前端、后端一直不出现,按下面顺序检查:

  1. 删干净 .git:确认 backend/ 和 frontend/ 里没有 .git 文件夹,这是 90% 情况的原因。
  2. 检查 .gitignore:确认没有 backend/ 或 frontend/ 这样的整目录忽略规则。
  3. 用 git status 确认:提交前先看 git status,应该能看到前后端所有文件都被追踪,而不是只有前端。

另一种思路:用孤儿分支隔离

如果想让前后端代码在同一个仓库但提交历史完全隔离,可以用 git checkout --orphan 创建孤儿分支。每个分支有独立的提交历史,互不影响。

但这属于进阶玩法,适合对 Git 比较熟悉的场景;日常用前面说的子目录方案就足够了。

相关推荐
小白的码BUG之路2 小时前
Jenkins -- 连接gitee
运维·gitee·jenkins
鶴哥只手遮天3 小时前
第 8 章 工作区与检出:unpack-trees 与并行 checkout
git
xing-xing5 小时前
git 相关命令总结
git
A-刘晨阳7 小时前
GitLab + ArgoCD 实现 Kubernetes GitOps 自动化部署
运维·人工智能·git·kubernetes·自动化·云计算·argocd
ControlRookie18 小时前
SyncBridge:一个 CODESYS 工程与 AI 之间工程师级的同步工具
git·ai编程·codesys·工业软件·controlrookie
鬼手点金1 天前
opencode-性能优化建议
java·人工智能·git·自动化·nanogpt
网络毒刘1 天前
开源 Aider 工作流实战:Git 提交驱动的 AI 结对,与 Cursor 何时互补
git·ai编程·cursor·aider
HRTOS1 天前
HRTOS 4.0 将长期维护:为什么版本号不再频繁变化
经验分享·git·单片机·51单片机
驭渊的小故事2 天前
linux 基础命令 + git 仓库创建和配置命令
linux·git
行者-全栈开发2 天前
华为云码道 CodeArts 实测:让 AI 用 Rust 写一个 Git 仓库健康度体检台「仓衡」
git·rust·tauri·桌面应用·ai 编程·华为云码道·codearts 代码智能体