首页 > 解决方案 > Git 上的两个分支是 1 次提交,但代码没有差异

问题描述

我的 GitHub 存储库中有两个分支,dev并且master. 我最近从devinto做 PR master,现在他们是 1 commit off。

master有 111 次提交和dev112 次提交,但两个分支的代码完全相同。

这很烦人,因为在 GitHub 上,我看到当我从toThis branch is 1 commit ahead of dev.做 PR 时,它被切换了,我得到了masterdevThis branch is 1 commit ahead of master.

如何解决这个问题?

标签: gitgithub

解决方案


我最近正在从 dev 到 master 做 PR,现在他们已经 1 提交了。

当你合并 PR 时,它可能创建了一个“合并提交”:一个有两个父级的提交,它链接了两个分支的历史,如下所示:

              master before merge
                 v
... <--a <--b <--c
                   \
                    -- M <-- master after merge, pointing at merge commit
                   /
... <--x <--y <--z
                 ^
             dev, before and after merge

除非您解决了任何冲突,否则此提交不会包含任何更改,它只是将历史粘合在一起。它可以从“master”(即在历史中)访问,但不能从“dev”访问,因此它显示为他们历史上的差异。

您可以以另一种方式合并回来,然后您将在“dev”的历史记录中拥有一个不在“master”中的新合并提交(以“z”和“M”作为父项)。根据您的工作流程,这可能会或可能不会更令人困惑。

或者,您可以“快进”开发人员以指向合并提交,但如果您已保护分支仅通过拉取请求进行更改,那将是繁琐的。


推荐阅读