使用壁球Git Merge但保留网络图

时间:2017-10-21 22:51:22

标签: git github merge commit

假设我有开发分支和FixBullshit分支,我在FixBullshit中有5个提交,我做了一个pull请求但是将FixBullshit与merge + squash合并开发以保持开发为1提交以保持它更清晰(是它顺便说一句,最佳选择?)

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

我做错了什么?我怎么能在网络上创建该链接?

3 个答案:

答案 0 :(得分:2)

网络图显示了git repo的历史记录,以及"压缩"通过压缩来改变历史。

Github正在做的是采用此图

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

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

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

要执行您的建议,您可以在合并之前将F--G--H压缩到一个提交Q中,以制作类似

的图表
A--B--C--D--E--I
    \         /
     Q--------

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

互联网上有很多网页like this one关于压缩,变基和其他合并方法的优缺点。

答案 1 :(得分:1)

如果你这样做,那么你将失去分支的轨道,因为这是git的工作方式

答案 2 :(得分:0)

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

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