git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
dys0327
V2EX  ›  git

有一个 git 仓库合并问题,不知道怎么办才好

  •  
  •   dys0327 · Jun 3 · 3760 views
    This topic created in 154 days ago, the information mentioned may be changed or developed.
    目前有两个仓库,简称仓库 A 和仓库 B

    两个仓库结构如下:


    最终想要实现将两个仓库的代码合并,并且合并时可以提示冲突,手动解决。

    请教下有没有好的办法
    20 replies  •  2026-06-04 09:45:11 +08:00
    Nasdaq
    Nasdaq
    Jun 3
    1
    速请 CodeX App 真神
    javalaw2010
    2
    同意一楼意见
    coolair
    coolair
    Jun 3
    3
    直接 clone 一个仓库 A 或 B ,然后将另一个 B 或 A 设置成 upstream ,直接 merge upstream --allow-unrelated-histories 不就可以了吗
    dys0327
    dys0327
    OP
    Jun 3
    4
    @coolair B 和 A 的仓库结构不一样,一个是 xxx_cloud ,一个是 yyy_cloud ,但是内层的子模块名称时一致的
    evan1
    evan1
    Jun 3
    5
    idea 可以直接对比文件夹。具体就是在 idea 里打开仓库 A ,右键 moduleA 的文件夹,然后 compare with ,在弹出的页面选择仓库 B 的 moduleA 文件夹。然后可以逐一对比异同。和 git 的页面差不多。


    coolair
    coolair
    Jun 3
    6
    @dys0327 #4 这有什么关系,你直接 clone 仓库 B ,然后 git mv 重命名,再 merge 。
    zizon
    zizon
    Jun 3
    7
    仓库 B 叠个改名的 commit 然后 rebase 到 A?
    evan1
    evan1
    Jun 3
    8
    @evan1 #4 不一样的可以直接在这个页面合并。
    dys0327
    dys0327
    OP
    Jun 3
    9
    @coolair #6 git 用的不熟练,我去查查
    dys0327
    dys0327
    OP
    Jun 3
    10
    @evan1 #5 这个应该是直接比较的磁盘上的文件?我直接以仓库 A 为基础,比对目标选仓库 B 的目录,他应该是不区分仓库 B 中的分支,比对的是所有分支的文件?
    evan1
    evan1
    Jun 3
    11
    @dys0327 #10 是的,直接比较磁盘上的文件。

    你可以 down 下来两个仓库的文件,在本地对比+合并。弄完之后再提交到仓库 A 里面。
    evan1
    evan1
    Jun 3
    12
    @dys0327 #10 你本地也只是一个分支的文件,当前是哪个分支对比的就是哪个分支。
    ca2oh4
    ca2oh4
    Jun 3
    13
    pr ?
    gadfly3173
    gadfly3173
    Jun 3 via Android
    14
    听起来适合用 git filter repo ,因为你还需要重写 module 的路径。
    BarryYangi
    15
    把这张图扔给 codex/cc 完事
    gscsnm
    gscsnm
    Jun 3
    16
    你甚至把这张图扔给豆包,他都能给解决方案。。。
    stevenself
    17
    这两仓库建一个新的目录,然后 codex/cc 帮你做
    kphcdr
    kphcdr
    Jun 3
    18
    一般情况下 moduleA ..B..C 应该都是 git 的 submodule ,应该各自有独立的仓库
    SoloCompany
    SoloCompany
    Jun 3 via iPhone
    19
    正确做法,先把代码 checkout 到同一 repo 的不同分支,然后分别对两个分支按照你的意愿执行例如 cloud xy 的子目录重命名,然后分别 commit ,再然后 merge 解决冲突
    hukei
    hukei
    Jun 4
    20
    能描述出来的问题 不算问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1754 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 17:19 · PVG 01:19 · LAX 09:19 · JFK 12:19
    ♥ Do have faith in what you're doing.