误在已有Git仓库内创建嵌套仓库,如何迁移内层提交至外层?
如何安全迁移嵌套Git仓库的提交至外层仓库并移除内层仓库
完全可以安全操作,按下面的步骤来,不会丢失提交记录。
前置准备
- 先检查内外层仓库有没有未提交的更改,执行
git status查看,有未提交的先提交或暂存。 - 备份整个项目目录,避免操作失误导致数据丢失。
迁移内层提交至外层仓库
假设内层仓库目录名为inner-repo:
- 进入外层仓库根目录:
cd /path/to/outer-repo - 将内层仓库添加为外层的远程仓库:
git remote add inner ./inner-repo - 拉取内层仓库的所有提交到外层临时分支:
git fetch inner main(这里main是内层仓库的主分支,实际分支名不同的话请替换) - 合并内层提交到外层主分支:
git merge inner/main --allow-unrelated-histories- 若合并时出现冲突,手动解决冲突后提交即可。
移除内层仓库
- 删除外层与内层的远程关联:
git remote remove inner - 删除内层仓库目录:
rm -rf inner-repo - 提交外层仓库的更改:
git add . && git commit -m "迁移内层仓库提交并移除嵌套仓库"
验证操作结果
- 执行
git log查看外层仓库提交记录,确认内层提交已包含在内。 - 检查项目文件完整性,确保没有内容丢失。
内容的提问来源于stack exchange,提问作者Katharine Osborne
相关产品推荐
相关产品推荐

