Git 与 squash 合并但保留网络图
Git Merge with squash but keep network graph
假设我有开发分支和 FixBullshit 分支,并且我在 FixBullshit 中有 5 个提交,我做了一个拉取请求,但是使用合并 + squash 将开发与 FixBullshit 合并以将其保留在开发中作为 1 个提交以使其更清晰(是顺便说一句,这是最好的选择?)
问题是,在这样做之后,在 github 的网络图中,Bullshit 分支似乎已停止开发,但它从未合并,然后出现 1 个开发中的提交,但没有关系到 Bullshit 分支,就像它发生在我的 git
https://github.com/noxerr/VRHarry/network
随着分支机构的发展和 "fixSensorsinput"
我做错了什么?我如何在网络上创建 link?
网络图显示 git 回购的历史,"squashing" 通过压缩改变历史。
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--------
不幸的是,这种形式的 squash 合并改变了历史,这可能会给那些拥有旧历史的本地副本的人带来问题。这可能就是 Github squash 的原因合并如上所述,而不是像这样。
互联网上有很多页面like this one介绍压缩、变基和其他合并方法的优缺点。
不确定我是否理解你的意思。您似乎既想压缩提交,又想保持开发提交。
在那种情况下,您只需要在与 squash 合并之前创建另一个分支 ,并且不要检查它。那么你将拥有两个分支。
如果你这样做,那么你将失去对分支的追踪,因为这是 git 的工作方式
假设我有开发分支和 FixBullshit 分支,并且我在 FixBullshit 中有 5 个提交,我做了一个拉取请求,但是使用合并 + squash 将开发与 FixBullshit 合并以将其保留在开发中作为 1 个提交以使其更清晰(是顺便说一句,这是最好的选择?)
问题是,在这样做之后,在 github 的网络图中,Bullshit 分支似乎已停止开发,但它从未合并,然后出现 1 个开发中的提交,但没有关系到 Bullshit 分支,就像它发生在我的 git https://github.com/noxerr/VRHarry/network 随着分支机构的发展和 "fixSensorsinput"
我做错了什么?我如何在网络上创建 link?
网络图显示 git 回购的历史,"squashing" 通过压缩改变历史。
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--------
不幸的是,这种形式的 squash 合并改变了历史,这可能会给那些拥有旧历史的本地副本的人带来问题。这可能就是 Github squash 的原因合并如上所述,而不是像这样。
互联网上有很多页面like this one介绍压缩、变基和其他合并方法的优缺点。
不确定我是否理解你的意思。您似乎既想压缩提交,又想保持开发提交。
在那种情况下,您只需要在与 squash 合并之前创建另一个分支 ,并且不要检查它。那么你将拥有两个分支。
如果你这样做,那么你将失去对分支的追踪,因为这是 git 的工作方式