V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
nobibee
V2EX  ›  git

git 合并分支问题

  •  
  •   nobibee · 2021-08-20 08:20:26 +08:00 · 2652 次点击
    这是一个创建于 1192 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    7 条回复    2021-08-20 21:47:04 +08:00
    snailya
        1
    snailya  
       2021-08-20 08:23:53 +08:00
    盲猜一个创建一个新的分支,把另一个 repo 当前分支的文件复制过来。
    msg7086
        2
    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
        3
    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
        4
    teliang  
       2021-08-20 08:48:18 +08:00 via iPhone
    @MrUser 这样 project-a 的历史还在不?
    otakustay
        5
    otakustay  
       2021-08-20 09:25:07 +08:00
    要保留历史合并基本没戏,或者做 git submodule 吧
    kxuanobj
        6
    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
        7
    Inf1nity  
       2021-08-20 21:47:04 +08:00
    主仓库添加副仓库的地址并 pull 到主仓库的一个新分支即可。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 18:43 · PVG 02:43 · LAX 10:43 · JFK 13:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.