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

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

  •  
  •   dys0327 · 10h 8m ago · 1322 views
    目前有两个仓库,简称仓库 A 和仓库 B

    两个仓库结构如下:


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

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


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

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