Git 与壁球合并但保留网络图

Dan*_*pez 5 git merge commit github

假设我有开发分支和 FixBullshit 分支,并且我在 FixBullshit 中有 5 个提交,我做了一个拉取请求,但是将开发与 FixBullshit 与合并 + 壁球合并以使其在开发中保持为 1 个提交以使其更清晰(这是最好的选择,顺便一提?)

事情是,在这样做之后,在 github 的网络图中,看起来 Bullshit 分支退出了开发,但它从未合并,然后在开发中出现了 1 个提交,但与 Bullshit 分支没有关系,就像它发生在我的 git 中一样 https://github.com/noxerr/VRHarry/network 带有分支开发和“fixSensorsinput”

我究竟做错了什么?我如何在网络上创建该链接?

rle*_*827 8

网络图显示了 git repo 的历史,“squashing”通过压缩它来改变历史。

Github 正在做的是获取这张图

A--B--C--D--E
    \
     F--G--H
Run Code Online (Sandbox Code Playgroud)

压缩F--G--H成单个提交W,并将其应用为

A--B--C--D--E--W
    \
     F--G--H
Run Code Online (Sandbox Code Playgroud)

要按照您的建议进行操作,您可以在合并之前将其压缩F--G--H成一个提交Q以制作类似的图表

A--B--C--D--E--I
    \         /
     Q--------
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种形式的壁球合并改变了历史,这可能会给那些拥有旧历史本地副本的人带来问题。这可能就是 Github 壁球合并的原因,而不是像上面描述的那样。

目前在互联网上的许多网页像这样的有关优势和挤压,基础重建的缺点,以及其他合并的方法。