Nit*_*uri 4 git github git-repo
我需要合并两个存储库而不丢失其中任何一个的历史记录。我搜索了几个论坛,但没有一个能提供完整的解决方案。在执行了从不同来源采取的几个步骤后,我可以设法连接缺失的点,并将两个单独的存储库合并到一个存储库中,并且它们的历史记录完好无损。
还有其他几个答案谈论合并分支或只是没有完整的说明/步骤。
如果两个存储库都在您的计算机上,例如您有文件夹
A/.git
A/client-src
B/.git
B/server-src
Run Code Online (Sandbox Code Playgroud)
只需转到其中之一即可:
cd A
Run Code Online (Sandbox Code Playgroud)
并输入:
git remote add repo-b ../B
Run Code Online (Sandbox Code Playgroud)
这将创建一个从 repo-a 到 repo-b 的符号链接(“repo-b”只是一个符号名称,您可以选择任何您想要的名称),然后
git fetch repo-b
Run Code Online (Sandbox Code Playgroud)
将合并两个存储库。此时,您将在一个存储库中拥有两个历史记录,但仍位于不同的分支中。分支“master”(您所在文件夹的主分支)将包含客户端代码。分支“repo-b/master”将包含服务器代码。
然后你只需要将两者合并:
git merge repo-b/master --allow-unrelated
Run Code Online (Sandbox Code Playgroud)
之后,您将在 Repo A 中拥有一个合并的主分支。如果您确定 Repo B 中没有其他有意义的信息(标签、其他分支),您可以丢弃它并继续使用 Repo A。两个历史记录都将完好无损。
为了完整起见,您最终应该删除从 Repo-A 到 Repo-B 的现在无用的链接:
git remote remove repo-b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5151 次 |
| 最近记录: |