如何将ReactJS前端与SpringBoot后端的两个GitHub仓库合并为一个名为Movie Review app的仓库
如何将ReactJS前端与SpringBoot后端的两个GitHub仓库合并为一个名为Movie Review app的仓库
嗨,作为刚接触Git/GitHub的新手,遇到这种情况完全正常,别慌!我给你两种简单易懂的方法,你可以根据自己的需求来选:
方法一:从零创建新仓库(最适合新手,操作简单)
这种方法就像重新打包你的项目,把前后端代码分别放在新仓库的两个子目录里,步骤超清晰:
- 先去GitHub上创建一个全新的仓库,名字就叫「Movie Review app」。创建的时候可以选要不要初始化README,无所谓,后面都能补。
- 把这个新仓库克隆到你的本地电脑:
git clone https://github.com/你的GitHub用户名/Movie-Review-app.git - 打开克隆下来的文件夹,在里面新建两个子文件夹:
frontend和backend。 - 找到你本地原来的React前端项目文件夹,把里面所有文件(注意!一定要删掉前端文件夹里的
.git隐藏目录,别把旧仓库的Git信息带进来)复制到刚建的frontend文件夹里。 - 同样操作:找到本地的SpringBoot后端项目文件夹,删掉里面的
.git隐藏目录,然后把所有后端文件复制到backend文件夹里。 - 现在回到新仓库的根目录,在终端里执行以下命令提交代码:
# 把所有文件加入Git追踪 git add . # 提交修改,备注写清楚内容 git commit -m "Initial commit: Add React frontend and SpringBoot backend for Movie Review app" # 推送到GitHub的新仓库 git push origin main - 打开GitHub上的新仓库,你就能看到前后端代码整整齐齐地放在两个子目录里啦!
方法二:保留其中一个仓库的提交历史(适合需要保留过往记录的情况)
如果你不想丢掉其中一个仓库的提交历史(比如后端开发时的所有提交记录),可以用这种方法把前端代码合并进来:
- 先把你想保留历史的仓库(比如SpringBoot后端仓库)克隆到本地:
git clone https://github.com/你的GitHub用户名/原来的后端仓库名.git - 进入这个克隆下来的文件夹,先把原来的远程仓库重命名,避免和新仓库混淆:
git remote rename origin old-backend - 在GitHub上创建新的「Movie Review app」仓库,然后把这个新仓库设为当前本地仓库的远程:
git remote add origin https://github.com/你的GitHub用户名/Movie-Review-app.git - 现在把原来的后端代码整理到
backend子目录里:- 如果是Mac/Linux终端,可以用这个命令快速移动(注意不要移动
.git目录):mv !(backend|.git) backend/ - 如果是Windows系统,直接手动把所有后端文件(除了
.git)拖进新建的backend文件夹就行。
- 如果是Mac/Linux终端,可以用这个命令快速移动(注意不要移动
- 提交这次目录结构的调整:
git add . git commit -m "Restructure backend code into dedicated backend directory" - 接下来把前端仓库的代码合并进来,用Git subtree命令可以保留前端的提交历史:
# 先把前端仓库添加为本地远程 git remote add frontend https://github.com/你的GitHub用户名/原来的前端仓库名.git # 拉取前端代码并合并到frontend子目录 git subtree add --prefix frontend frontend main - 最后把所有修改推送到新的GitHub仓库:
git push origin main
一些新手友好的提醒
- 一定要删掉旧项目里的
.git隐藏目录!如果带着这个目录,会变成Git嵌套仓库,后续操作容易出问题。 - 提交代码前,先检查一下
frontend和backend目录里的文件是否完整:比如React项目的package.json、SpringBoot的pom.xml(或build.gradle)都要在对应的目录里,不然项目跑不起来。 - 如果原来的两个仓库有各自的
README.md、LICENSE等文件,记得在新仓库的根目录里合并这些内容,或者保留子目录里的文件,根目录可以写一个总览的README,说明前后端的启动方法。
备注:内容来源于stack exchange,提问作者Apoorv singh yadav
相关产品推荐
相关产品推荐

