为什么 local git repo 看不到在 origin 上执行的合并?

Why local git repo does not see the merge executed on origin?

我在分支“feature/90...”上创建了拉取请求...
我在 GitHub 中将它合并到 master 分支(名为“main”)。

分支未删除。
在 VS Code 上,我可以切换到 master 并从 origin 获取 master。
为什么我在 VS Code“GitGraph”插件中看不到合并,在 SourceTree 上也看不到?

此外,来自 bot hbranches 的 fetching/pulling 不会更改它,“合并到主”行未表示。
要查看它,我也可以在本地合并分支到 master,结果如下:
(忽略主分支上额外的“clenup”提交)

是否可以让在源上执行的合并操作在本地存储库副本上也“可见”/“复制”?
为什么 pull/fetch 不显示?

这是因为您在 GitHub 上所做的 不是 合并。你做了一个“挤压和合并”。 (我通过查看有关此主题的 other 问题中的屏幕截图知道了这一点。)

GitHub 提供了三种接受拉取请求的方式:Merge、Rebase and Merge 和 Squash and Merge。尽管名称不同,后两个 不合并 。他们确实在 main 上创建了一个新的提交,我实际上可以在你烦人的空白图表中看到它;但它们 不会 导致合并拓扑(与两个父项一起提交),这正是您正在寻找的(并且是您在本地执行真正的合并时在本地创建的) .

如果您想要 合并拓扑,您应该要求GitHub 进行真正的合并。但是,许多公司不允许这样做;他们将 GitHub 配置为进行压缩和合并。没关系,但是您不能寻找合并拓扑。这种拓扑结构正是 Squash 和 Merge 旨在避免的。


(顺便说一句,你应该删除你的功能分支。一个被 Squash 和 Merge 关闭的 PR 分支是无用的,应该立即删除。否则你可能会尝试向它添加更多提交并且再次尝试压缩并合并它 ,这将导致可怕的合并冲突和其他讨厌的副作用。)