【问题标题】:Merge subtree changes if different commit histories如果不同的提交历史记录合并子树更改
【发布时间】:2018-08-06 05:24:33
【问题描述】:

我正在尝试使用 splitsh-lite 将来自 monorepo 的包公开为 manyrepos。

但是如何将一个对 manyrepo 的 pull request 合并回 monorepo?

splitsh-lite 是一个 git 子树替代品,它创建所有新的提交 ID,同时基本上保持相同的提交历史。这个想法是 manyrepo 保持只读状态,PR 被合并到 monorepo,并从那里再次分发回 manyrepos。现在,PR 的简单子树合并返回

fatal: refusing to merge unrelated histories

鉴于我们知道在 PR 提交之前有一个“最后匹配的提交”,是否有一个 git 技巧来实现这一点?

【问题讨论】:

    标签: git git-merge git-commit git-subtree lerna


    【解决方案1】:

    简短的回答是你不能——它的设计初衷不是朝那个方向工作。您应该直接向原始 monorepo 发出所有拉取请求,这当然也意味着您必须克隆/分叉原始 monorepo 并在那里完成您的工作。

    git subtree 代码确实允许您双向工作(在限制范围内)。您正在探索的其他替代方案没有。

    【讨论】:

    • 谢谢。这是否与作者对 PR 的具体说法(youtu.be/4w3-f6Xhvu8?t=1106:“但是你需要移动它”)和一般的访问控制用例(youtu.be/4w3-f6Xhvu8?t=904)相矛盾。从这个意义上说,双向选择似乎是 splitsh(-lite) 的核心优势
    • 我是根据幻灯片来的,不是youtube介绍;也许他们从那时起添加了更多功能。从根本上来说,双向都有些棘手,但你是对的,有一个“最后匹配的提交”,所以它应该是可能的。
    猜你喜欢
    • 2013-03-24
    • 1970-01-01
    • 2014-06-30
    • 2021-01-06
    • 1970-01-01
    • 2011-11-08
    • 2020-12-02
    • 2018-11-04
    • 2015-09-06
    相关资源
    最近更新 更多