代码之家  ›  专栏  ›  技术社区  ›  Daniel Roca Lopez

Git与squash合并但保留网络图

  •  5
  • Daniel Roca Lopez  · 技术社区  · 7 年前

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

    问题是,在这样做之后,在github的网络图中,它看起来像狗屎分支退出了开发,但它从未合并,然后在开发中出现了1个提交,但与狗屎分支没有关系,就像在我的git中发生的那样 https://github.com/noxerr/VRHarry/network 具有分支开发和“固定传感器输入”

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

    3 回复  |  直到 7 年前
        1
  •  9
  •   rlee827    7 年前

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

    Github正在做的是获取此图

    A--B--C--D--E
        \
         F--G--H
    

    挤压 F--G--H 进入单个提交 W

    A--B--C--D--E--W
        \
         F--G--H
    

    要按你的建议做,你可以把它压扁 一起提交 Q 在合并以生成类似图形之前

    A--B--C--D--E--I
        \         /
         Q--------
    

    不幸地 这可能就是Github squash按上述方式合并而不是像这样合并的原因。

    互联网上有许多网页 like this one 关于挤压、重定基址和其他合并方法的优缺点。

        2
  •  1
  •   Dani Roca    7 年前

    如果您这样做,那么您将失去对分支的跟踪,因为这是git的工作方式

        3
  •  0
  •   carnicer    7 年前

    不知道我是否理解你。您似乎想同时压缩您的提交,但同时保持您的开发提交。

    在这种情况下,您只需创建另一个分支 在与挤压合并之前 ,不要查看它。然后你会有两个分支。

    推荐文章