为什么 git branch --merged 不显示所有合并的分支?

Sco*_*son 8 git

我创建了一个功能分支,然后为它创建了一个 PR。我的 PR 被接受并合并了。PR 说,“可以安全地删除分支。” 但是当我git branch --merged在主分支上做时,我没有看到合并的分支。我做错了什么?

kts*_*gop 15

我也一直在为此苦苦挣扎。我们正在使用gitlab 的 MR 流程,这可能是最简单的基于合并的 git 流程。

我注意到的是,当合并 MR 时,我们选择压缩提交。因此,这会影响 git 历史记录并阻止该--merged标志按预期工作。


小智 2

如果不知道确切的工作流程,这是一个很难回答的问题。

我想既然你“创建了一个 PR”,你就首先分叉/克隆了一个非本地存储库。然后,您在本地存储库中创建了一个新分支,进行了更改以添加功能,并将这些更改提交到本地功能分支。

除此之外,情况就有点模糊了。您可以采取以下几个步骤:

  1. 你说你提交了 PR,但你没有说你曾经将功能分支与本地主分支合并。这表明您可能正在遵循这样的工作流程。git branch --merged如果是这种情况,并且您在本地存储库中运行,则看不到列出的功能分支的原因是您从未将功能分支合并到本地存储库中的 master 中。在我看来,这是最有可能发生的情况。尝试git pull <name of your remote--probably origin> master从本地主分支运行,然后git branch --merged再次尝试运行。

  2. 快进 可能会导致一些混乱,但它本身不会产生您所描述的问题。

  3. 您始终可以git log在给定分支上运行以查看其完整的提交历史记录。您可以检查 master 的提交历史记录,并将其与 origin/master 的提交历史记录进行比较,以找出差异。

希望这可以帮助!