【问题标题】:How do I preserve branches after pulling multiple repositories拉多个存储库后如何保留分支
【发布时间】:2022-01-04 07:58:42
【问题描述】:

我正在尝试将多个存储库拉入一个存储库。但是在git pull <URL> 之后,存储库合并,因此无法识别各个存储库中确实存在的分支。

【问题讨论】:

  • 如果你真的想这样做,将多个 repos 合并为一个可能会是一个漫长而痛苦的过程,特别是如果你有多个分支要保留。你可能想先回答几个问题:你真的需要那些分支吗?你真的需要保留原始回购的历史吗?当两个 repos 包含相同的文件路径时会发生什么?如果两个 repos 包含相同的分支名称会发生​​什么?个人提交应该按什么顺序放入新的仓库中?

标签: git github gitlab


【解决方案1】:

对于这种情况,您应该查看Git Submodules。这基本上就是答案(对不起,它实际上只是链接,但它本身就是一个完整的主题)

这将允许您拥有多个存储库创建一个代码库,并将每个子模块设置为自己的版本。

子模块文档的介绍是:

经常发生在处理一个项目时,您需要使用其中的另一个项目。也许它是第三方开发的库,或者您正在单独开发并在多个父项目中使用的库。在这些场景中会出现一个常见问题:您希望能够将这两个项目视为独立的,但仍然能够在另一个项目中使用其中一个。

这听起来与您在这里想要实现的完全一样。

文档中给出的示例显示了如何创建它:

$ git submodule add https://github.com/chaconinc/DbConnector
Cloning into 'DbConnector'...
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 11 (delta 0), reused 11 (delta 0)
Unpacking objects: 100% (11/11), done.
Checking connectivity... done.

这还应该创建一个.gitmodules 文件,其中列出了正在使用的子模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-24
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多