有一个 git 仓库合并问题,不知道怎么办才好 - V2EX
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
dys0327
V2EX    git

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

  •  
  •   dys0327 9h 18m ago 1286 views
    目前有两个仓库,简称仓库 A 和仓库 B

    两个仓库结构如下:


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

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


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

    你可以 down 下来两个仓库的文件,在本地对比+合并。弄完之后再提交到仓库 A 里面。
    evan1
        12
    evan1  
    PRO
       8h 57m ago
    @dys0327 #10 你本地也只是一个分支的文件,当前是哪个分支对比的就是哪个分支。
    ca2oh4
        13
    ca2oh4  
       8h 34m ago
    pr ?
    gadfly3173
        14
    gadfly3173  
       8h 23m ago via Android
    听起来适合用 git filter repo ,因为你还需要重写 module 的路径。
    BarryYangi
        15
    BarryYangi  
       8h 18m ago
    把这张图扔给 codex/cc 完事
    gscsnm
        16
    gscsnm  
       8h 10m ago
    你甚至把这张图扔给豆包,他都能给解决方案。。。
    stevenself
        17
    stevenself  
       7h 38m ago
    这两仓库建一个新的目录,然后 codex/cc 帮你做
    kphcdr
        18
    kphcdr  
       6h 41m ago
    一般情况下 moduleA ..B..C 应该都是 git 的 submodule ,应该各自有独立的仓库
    SoloCompany
        19
    SoloCompany  
       1h 57m ago via iPhone
    正确做法,先把代码 checkout 到同一 repo 的不同分支,然后分别对两个分支按照你的意愿执行例如 cloud xy 的子目录重命名,然后分别 commit ,再然后 merge 解决冲突
    About     Help     Advertise     Blog     API     FAQ     Solana     2755 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 47ms UTC 15:40 PVG 23:40 LAX 08:40 JFK 11:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86