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 比较熟悉的场景;日常用前面说的子目录方案就足够了。

相关推荐
不老刘16 小时前
Antigravity 的 New Worktree 模式:给 AI 代理一个安全的“平行工位”
人工智能·git·ai编程·antigravity
光谱SpectrAI17 小时前
Windows 也中招:Git Bash 和 Node 仍信任泄露的 eMudhra 证书
git
YIN_尹17 小时前
【git原理与使用】git初识与安装
大数据·git·elasticsearch
Leo_Mr1 天前
Vue3 项目配置 Git 提交规范(企业通用方案:husky + commitlint + cz-git + lint-staged)
git
jyOverQ1 天前
Git rebase 和 merge 有什么区别?什么时候该用哪个?
git
晗夜未央1 天前
跨仓库 Skill 换台电脑就失效?用 Git remote 校验项目
人工智能·git·python
Lsetea1 天前
Git访问HTTPS证书不受信任:用URL级sslCAInfo限定私有CA范围
git·https·开发工具·ssl证书·ca证书
এ慕ོ冬℘゜2 天前
Git 基础入门|和 SVN 对比 + 四大区域 + 常用命令详解
git·svn
DevLoom_2 天前
macOS 命令行 curl/git 报 SSL 证书错误?eMudhra 事件完整修复指南
git·macos·ssl
keyipatience2 天前
Git学习(4)Git分布式优势与实战配置全解析
git·学习