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

能否基于指定提交对作为公共基底合并Git分支?

合并独立Git仓库:将theirs合并到ours

这种场景其实挺常见的——俩仓库看似完全独立,但本质上theirs是从ours的工作副本衍生出来的,只是没共享Git历史。要搞定合并,核心就是让Git允许处理无关联的历史记录,具体操作步骤我给你拆解清楚:

  • 先切换到本地ours仓库的目录,把theirs仓库添加为远程仓库:

    git remote add theirs <their repository path>
    

    这里的<their repository path>可以是本地文件路径(比如/Users/you/projects/theirs),也可以是远程仓库的URL(比如git@github.com:someone/theirs.git),按需替换就行。

  • 接着执行拉取合并操作,因为俩仓库历史无关联,必须加上--allow-unrelated-histories参数来让Git放行这次合并:

    git pull theirs <their branch> --allow-unrelated-histories
    

    把<their branch>换成你要合并的theirs仓库里的具体分支名,比如main或者master。

  • 如果合并时出现冲突(比如俩仓库对同一个文件做了不同修改),Git会暂停合并并提示你处理冲突。你只需要打开冲突文件,手动调整内容到你想要的状态,然后执行:

    git add <冲突文件名>
    git commit
    

    这样就能完成冲突解决和合并提交了。

另外还有个替代方案,要是你不想添加远程仓库,也可以直接fetch后合并:

git fetch <their repository path> <their branch>
git merge FETCH_HEAD --allow-unrelated-histories

效果和前面的方法一致,只是添加远程仓库的方式更方便后续和theirs仓库同步更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:13:50