gpt4 book ai didi

git - 如何在不丢失任何一个存储库历史记录的情况下 merge 两个 git 存储库

转载 作者:行者123 更新时间:2023-12-01 21:57:08 26 4
gpt4 key购买 nike

我需要在不丢失任何一个的历史的情况下 merge 两个存储库。我搜索了几个论坛,但没有一个能提供完整的解决方案。在执行了从各种来源采取的几个步骤后,我可以设法连接缺失的点并将两个独立的存储库 merge 到一个存储库中,并且它们的历史完好无损。

还有其他几个关于 merge 分支的答案,或者只是没有完整的说明/步骤。

最佳答案

如果两个仓库都在你的机器上,例如你有文件夹

A/.git
A/client-src

B/.git
B/server-src

只需转到其中一个:

cd A

然后输入:

git remote add repo-b ../B

这会创建一个从 repo-a 到 repo-b 的符号链接(symbolic link)(“repo-b”只是一个符号名称,您可以随意选择)然后

git fetch repo-b

将 merge 两个 repo 协议(protocol)。此时,您将在一个存储库中拥有两个历史记录,但仍在不同的分支中。分支“master”(您所在文件夹的主目录)将包含客户端代码。分支“repo-b/master”将包含服务器代码。

然后你只需要 merge 两者:

git merge repo-b/master --allow-unrelated

在此之后,您将在 Repo A 中拥有一个 merge 的 master 分支。如果您确定 Repo B 中没有其他有意义的信息(标签、其他分支),您可以丢弃它并继续使用 Repo A。两个历史记录都将完好无损。

为了完整起见,您最终应该删除现在无用的从 Repo-A 到 Repo-B 的链接:

git remote remove repo-b

关于git - 如何在不丢失任何一个存储库历史记录的情况下 merge 两个 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56051560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com