一个项目下两个模块,被git识别为两个项目,导致只能推送一个模块上去

本文详细描述了在IDEA中使用Maven创建包含后端子模块和Vue前端子模块的项目时,遇到Git识别为两个独立项目的问题,以及如何通过设置IDEA的VersionControl或者使用GitBashHere命令行推送来解决这个问题。同时,文章提供了两种解决方法,一种是通过IDEA设置清理并重新配置版本控制,另一种是直接使用Git命令行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题重现

使用IDEA创建了一个maven父项目,然后在父项目里建立了maven子模块(Module),然后点IDEA下方的Terminal,输入vue create web,在父项目下建立了一个vue的子模块。项目结构如下:

- maven父项目
  - maven子Module(后端)
  - vuecli子Module(前端)

然后在码云gitee上建立一个新仓库,本地用git clone git@gitee.com:snow_night/community-vueclli.git把项目克隆到本地,把clone得到的.git文件夹复制到maven父项目下。接着在IDEA里用上方绿钩和绿箭头进行commit和push。
这时就会出现以下问题:一个项目下两个模块,被git识别为两个项目,导致只能推送一个模块上去。

当你推送另一个模块时会报如下错误:

error: failed to push some refs to 'gitee.com:snow_night/community-vueclli.git'
To gitee.com:snow_night/community-vueclli.git
!	refs/heads/master:refs/heads/master	[rejected] (fetch first)
hint: Updates were rejected because the remote contains work that you do
Done
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

如果你强制推送,可以把另一个模块的文件夹推送上去,但是无法在码云gitee上点开该文件夹。

解决方法

方法一:IDEA里File->Setting->Version Control

首先清空仓库,会把代码和提交记录一起清空掉。
在这里插入图片描述
然后本地git clone git@gitee.com:snow_night/community-vueclli.git把项目克隆到本地,把clone得到的.git文件夹复制到maven父项目下,然后IDEA重新打开父项目,在IDEA里File->Setting->Version Control,在这里会看到两条记录,就对应着被识别的两个项目,把他们都用减号删掉,然后再次commit->push,可以看到会成功把整个父项目push上去了。

(不建议)方法二:不用IDEA推送,用命令行Git Bash Here推送,就不会识别成两个项目了。

关联远程库,然后推送。

# 在要推送的项目的目录下,打开Git Bash Here
$ git init	
$ git remote add origin git@gitee.com:snow_night/community-vueclli.git
# git pull <远程主机名> <远程分支名>:<本地分支名>
$ git pull --rebase origin master	# 这句命令,会把远程库里的master分支的内容(不是hello-world文件夹)拉取到当前文件夹里,但master分支此时不是追踪分支。

$ git add .
$ git commit -m "提交个Springboot项目"
# git push <远程主机名> <本地分支名>:<远程分支名>。如果加上参数"-u",那么提交的本地分支就会成为追踪分支。
$ git push origin master

你下次用IDEA打开父项目,IDEA也会右下角弹窗提示The directory <Project>\web is registered as a Git root, but no Git repositories were found there.这样的信息,要求你配置IDEA里File->Setting->Version Control。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值