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

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

  •  
  •   dys0327 · 11h 20m ago · 1349 views
    目前有两个仓库,简称仓库 A 和仓库 B

    两个仓库结构如下:


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

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


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

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