【问题标题】:How to rebase with merges?如何通过合并变基?
【发布时间】:2011-12-29 14:53:36
【问题描述】:

假设我在我的克隆中的 master 之上混合了提交和合并。现在我想把它推送到某个地方,但我收到一条消息,说我的更改无法快进。

如果我只有提交,我会做一个pull --rebasepush 并且我会完成它。但是如果我有合并的方式,用 rebase 拉动会破坏它们。我该如何处理这种情况?

【问题讨论】:

    标签: git version-control merge repository rebase


    【解决方案1】:

    如果我对你的理解正确,你会想要git fetch。一旦你拉入远程分支提示,手动 rebase/merge/cherry-pick 你的本地工作。一旦你按照你想要的方式安排它,将你的更改推送回遥控器。

    Here 很好地解释了为什么要使用 fetch 而不是 pull。

    【讨论】:

    • 我不想手动操作。我所追求的是一个“将我的更改放在上游主服务器之上”的命令。 pull --rebase 已经这样做了,但它会破坏过程中的一些信息。
    • 你需要做一个FF合并吗?您可以使用默认的 git pull 并希望合并按计划进行。
    • 我不想要另一个合并点 - 一段时间后会变得太混乱。我只想将我的更改移到 master 之上。
    • 我对这种情况不够熟悉,无法为您提供更多帮助,但手动设置可能是唯一的方法。否则,您可以更改工作流程,以便更轻松地处理这种情况。
    【解决方案2】:

    要变基并保留合并,您可以为变基命令指定--preserve-merges 选项。根据每个提交作为补丁应用的难易程度,这可能会也可能不会容易做到。

    我会先获取更改,然后检查并采取行动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 2013-09-04
      相关资源
      最近更新 更多