【问题标题】:git shows difference between dev and master even directly after merge of dev into master即使在将 dev 合并到 master 之后,git 也会显示 dev 和 master 之间的差异
【发布时间】:2017-11-13 11:55:33
【问题描述】:

这发生在我的 2 个单独的仓库中。

我的 dev 分支比我的 master 分支早了几个提交。我打开一个拉取请求以将 dev 合并到 master(壁球和合并)。合并后,当我再次比较 dev 和 master 时,它显示了完全相同的提交差异列表。

再次打开另一个拉取请求会显示相同的提交。

我已经通过完全删除 dev 并在 master 上使用 checkout -b 创建一个新分支解决了这个问题,但是有人可以解释为什么会发生这种情况吗?

【问题讨论】:

    标签: git github


    【解决方案1】:

    GitHub 的“压缩和合并”不是传统的合并——创建一个全新的提交,然后快进合并到目标分支。因此,这两个分支在提交图中看起来是不相关的,因此后续的 diff 会显示出令人困惑的结果。

    所以 S&M 通常只有在源分支是短暂的时才是一个好主意 - 即,如果 PR 完成后不需要它。因此,它通常对短暂的功能分支有意义,但不适用于您的用例。

    【讨论】:

    • 啊,这么说在squash和merge之后,历史就分道扬镳了,是吗?变基和合并的一般做法是什么?所以所有被认为是“通过”的 dev 提交都会被复制到 master 上?
    • @nxmohamad - 是的,这两个分支的历史基本上是不同的。我不确定 R&M 是否会更好地工作 - 通常我会提倡对这个用例进行常规合并,因为两个分支之间的关系将在提交图中明确。
    猜你喜欢
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    相关资源
    最近更新 更多