如何将无推送权限的外部仓库ExRepo合并到个人仓库MyOwnRepo?
无权限外部仓库内容合并到个人仓库的解决方案
你之前的核心问题是错误地在个人仓库内嵌套克隆了外部仓库,导致Git识别为嵌套仓库;而子模块方案仅能关联原仓库,无法满足你直接拥有内容并推送的需求。以下是正确的操作流程:
一、清理错误操作残留
如果MyOwnRepo里已有嵌套的ExRepo文件夹或子模块,先清理:
- 删除嵌套文件夹(Windows):
rmdir /s /q ExRepo - 删除嵌套文件夹(Linux/macOS):
rm -rf ExRepo - 若已添加子模块,额外执行:
git submodule deinit -f ExRepo git rm ExRepo
二、合并外部仓库内容到个人仓库
- 进入个人仓库目录:
cd C:/Users/<User>/MyOwnRepo - 添加外部仓库为临时远程源(命名为
external避免混淆):git remote add external git@ExRepo.git - 拉取外部仓库的所有内容:
git fetch external - 切换到你要合并到的目标分支(比如
main):git checkout main - 合并外部仓库的主分支内容(假设外部仓库主分支为
main,按需调整):git merge external/main --allow-unrelated-histories注:
--allow-unrelated-histories用于解决两个独立仓库无共同提交历史的合并问题
三、处理合并冲突(若有)
如果合并时出现冲突:
- 手动打开冲突文件,修改冲突部分
- 标记冲突已解决:
git add <冲突文件名> - 完成合并提交:
git commit
四、推送到个人远程仓库
合并完成后,直接推送到你的MyOwnRepo:
git push origin main
这样操作后,外部仓库ExRepo的内容会完全整合到你的个人仓库中,后续你可自由编辑、推送,不再依赖原外部仓库的权限。
内容的提问来源于stack exchange,提问作者Tarmiac
相关产品推荐
相关产品推荐

