You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Git仓库B的文件直接合并到仓库A(非子目录形式)

解决两个Git仓库根目录文件合并的问题

问题出在你拉取的Repo_B分支中,文件并非处于根目录,而是存放在子目录下,导致合并时不会与Repo_A根目录的同名文件产生冲突,反而直接作为子目录添加。以下是修正后的操作步骤,确保两个仓库的文件合并到同一根目录:

  1. 确保Repo_A的master分支工作区干净
    先检查当前分支是否有未提交的变更,否则先提交或暂存:

    git status
    
  2. 添加并拉取Repo_B的远程内容

    cd C:\repos\Repo_A
    git remote add Repo_B <remote-link-to-RepositoryB>
    git fetch Repo_B
    
  3. 创建临时分支并调整Repo_B的文件到根目录

    • 基于Repo_B的master创建临时分支:
      git checkout -b temp-branch Repo_B/master
      
    • 将Repo_B子目录内的所有文件移动到根目录(假设子目录名为Repo_B):
      git mv Repo_B/* .
      # 删除空的子目录
      git rm -r Repo_B
      
    • 提交这个目录调整:
      git commit -m "Move Repo_B files to root directory for merge"
      
  4. 合并临时分支到master

    • 切回master分支:
      git checkout master
      
    • 执行合并并允许无关历史:
      git merge temp-branch --allow-unrelated-histories
      

此时,两个仓库根目录下的同名文件会触发合并冲突,你可以逐个解决这些冲突,之后提交合并结果即可得到合并后的项目版本。如果合并后仍有部分文件未触发冲突,说明这些文件仅存在于其中一个仓库中,Git会自动将其添加到工作区,你可根据需求保留或删除。

内容的提问来源于stack exchange,提问作者Comfortable_Onion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:02:52