Git新手求助:IntelliJ中迁移master代码到main后内容消失
问题分析与解决步骤
你的问题核心是操作顺序和分支定位错误,导致本地main分支没有正确获取master的改动,且可能本地main分支原本就未与远程同步(是空分支),所以checkout后文件夹为空。
错误点拆解
- 你在main分支上执行「Rebase master onto origin/main」属于操作对象错误:这个操作的意图应该是把master的改动基于远程main重新整理,但你选错了执行分支,导致master的改动没有合并到本地main。
- 若你克隆仓库后本地main分支未拉取远程内容(比如远程main是默认分支,但本地默认创建了master),本地main分支可能是一个空分支,checkout后自然显示为空。
正确操作步骤
前提确认
先在IntelliJ的Git工具窗口确认:
- 远程仓库的
origin/main是否存在且有内容 - 本地
master分支已包含你的改动(你已提交并推送)
步骤1:确保本地main分支与远程同步
如果本地还没有main分支,先创建并关联远程main:
git checkout -b main origin/main
如果已有本地main分支,先拉取远程最新内容:
git checkout main git pull origin main
步骤2:将master的改动合并到main
方式一:合并(Merge,更适合新手)
- 切换到main分支:
git checkout main - 合并master分支的改动:
git merge master - 若出现冲突,在IntelliJ中解决冲突后提交
- 推送到远程main:
git push origin main
方式二:变基(Rebase,保持提交历史线性)
- 切换到master分支:
git checkout master - 将master的提交基于远程main重新整理:
git rebase origin/main - 解决冲突(若有),完成变基
- 切换回main分支:
git checkout main - 快进合并master的改动:
git merge master - 推送到远程main:
git push origin main
步骤3:清理(可选)
如果之后不再需要master分支,可删除本地和远程分支:
# 删除本地master git branch -d master # 删除远程master git push origin --delete master
内容的提问来源于stack exchange,提问作者Lara
相关产品推荐
相关产品推荐

