git 合并分支问题

2021-08-20 08:20:26 +08:00
 nobibee

我创建了两个不同的存储库。 现在,我想将这些不同的存储库合并为一个主存储库,但作为主存储库中的分支。应该怎么做呢 ?

2476 次点击
所在节点    git
7 条回复
snailya
2021-08-20 08:23:53 +08:00
盲猜一个创建一个新的分支,把另一个 repo 当前分支的文件复制过来。
msg7086
2021-08-20 08:24:31 +08:00
把其中一个库里的提交 push 到另一个库里。
比如你有一个托管库 A,本地两个库 B 和 C,你可以把 B 和 C 分别都 push 到 A 上去。
又比如你只有本地库 B 和 C,可以把 C 加成 B 的 remote,然后把 C 的提交 pull 进 B 里。

如果你还要合并两个分支的话要再复杂点。
MrUser
2021-08-20 08:33:16 +08:00
将 project-a 合并到 project-b:

cd path/to/project-b
git checkout develop # 切换本地到要合并的分支
git remote add project-a path/to/project-a
git fetch project-a --tags
git merge --allow-unrelated-histories project-a/develop # 选另一个库的分支合并进来
git remote remove project-a
teliang
2021-08-20 08:48:18 +08:00
@MrUser 这样 project-a 的历史还在不?
otakustay
2021-08-20 09:25:07 +08:00
要保留历史合并基本没戏,或者做 git submodule 吧
kxuanobj
2021-08-20 15:04:40 +08:00
msg7086 的方案可用。直接 checkout 到远程分支也是可以的。

A -> B

# in B
git remote add A /path/to/a
git fetch A
git checkout -b branch-a A/master

但这样的话,branch-a 跟 master 分支完全没有交集。是完全相互独立的分支。
Inf1nity
2021-08-20 21:47:04 +08:00
主仓库添加副仓库的地址并 pull 到主仓库的一个新分支即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796914

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX