Git - 从 PR 合并会覆盖以前的提交,不留下任何历史记录,为什么会发生这种情况?

问题描述 投票:0回答:1

我们正在使用github,并且我们大多数人都使用github桌面来管理我们的分支和提交。我们遇到一个问题,提交被覆盖但没有留下历史记录。示例:A 人将在自己的分支中更改文件,创建 PR,并将其合并到我们的主分支中。 B 将对自己分支中的同一文件进行不同的更改,创建 PR,并将其合并到我们的主分支中。当 B 的 PR 合并到我们的主分支后,A 的更改将会丢失。查看提交历史记录将显示人 A 进行了更改,然后人 B 进行了不同的更改,但在人 B 的历史记录中(在人 A 之后),它不会显示他们撤消人 A 的更改,而是显示该文件时间不包含A人的变化。我们不确定为什么会发生这种情况并且没有留下任何历史,有人有想法吗?

编辑:我在这里制作了一个有关其中一个问题的提交历史记录的视频:vimeo.com/905744582 最初在第 45 行我将 6 更改为 63,我的提交之后在上面添加了一行,您会注意到它又回来了到 6.

git git-merge git-commit
1个回答
0
投票

我认为最可能的解释是如何解决合并冲突。

默认情况下,

git show -p
不会向您显示合并提交中的更改,但您可以使用
--diff-merges
进行更改。

尝试

git show -p <sha-of-merge-commit> --diff-merges=separate

使用 B 的合并提交的 SHA。

在输出中,您应该看到两个部分,每个部分都以

commit <merge-sha> (from <parent-sha>)
开头。仔细检查这些内容,看看是否是在合并过程中 A 的工作被删除了。

如果是这样,问题与 B 实际合并该 PR 的方式有关。

© www.soinside.com 2019 - 2024. All rights reserved.