dys0327
V2EX  ›  git

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

By dys0327 at 6 月 3 日 · 3474 次点击
目前有两个仓库,简称仓库 A 和仓库 B

两个仓库结构如下:


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

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


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

你可以 down 下来两个仓库的文件,在本地对比+合并。弄完之后再提交到仓库 A 里面。
evan1
   12
evan1  
   6 月 3 日
@dys0327 #10 你本地也只是一个分支的文件,当前是哪个分支对比的就是哪个分支。
ca2oh4
   13
ca2oh4  
   6 月 3 日
pr ?
gadfly3173
   14
gadfly3173  
   6 月 3 日 via Android
听起来适合用 git filter repo ,因为你还需要重写 module 的路径。
BarryYangi
   15
BarryYangi  
   6 月 3 日
把这张图扔给 codex/cc 完事
gscsnm
   16
gscsnm  
   6 月 3 日
你甚至把这张图扔给豆包,他都能给解决方案。。。
stevenself
   17
stevenself  
   6 月 3 日
这两仓库建一个新的目录,然后 codex/cc 帮你做
kphcdr
   18
kphcdr  
   6 月 3 日
一般情况下 moduleA ..B..C 应该都是 git 的 submodule ,应该各自有独立的仓库
SoloCompany
   19
SoloCompany  
   6 月 3 日 via iPhone
正确做法,先把代码 checkout 到同一 repo 的不同分支,然后分别对两个分支按照你的意愿执行例如 cloud xy 的子目录重命名,然后分别 commit ,再然后 merge 解决冲突
hukei
   20
hukei  
   6 月 4 日
能描述出来的问题 不算问题
git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
© 2026 V2EX · 61ms · 3.9.8.5