Git 我们能否以某种方式将合并请求的所有提交“合并”为一个

Git 我们能否以某种方式将合并请求的所有提交“合并”为一个,git,gitlab,git-merge,Git,Gitlab,Git Merge,有时候,我们在Gitlab上有一些合并请求,在一个MR中有30次提交,这使得代码审查非常困难。即使这个MR已经在Gitlab上,我们是否可以以某种方式将所有这30个提交分组或合并为一个提交 这可行吗?我希望这是有道理的。谢谢如果您使用GitLab,您可以使用合并请求的“更改”选项卡,查看所有合并提交的更改,即合并实际应用的更改。这不是你想要的吗 如果您想按照注释中的建议执行挤压,我知道没有办法直接在Gitlab中执行。因此,您必须在本地签出您的分支,如@Hatik和force push所述挤压您

有时候,我们在Gitlab上有一些合并请求,在一个MR中有30次提交,这使得代码审查非常困难。即使这个MR已经在Gitlab上,我们是否可以以某种方式将所有这30个提交分组或合并为一个提交


这可行吗?我希望这是有道理的。谢谢

如果您使用GitLab,您可以使用合并请求的“更改”选项卡,查看所有合并提交的更改,即合并实际应用的更改。这不是你想要的吗

如果您想按照注释中的建议执行挤压,我知道没有办法直接在Gitlab中执行。因此,您必须在本地签出您的分支,如@Hatik和force push所述挤压您的提交。现有的合并请求将自动更新,只包含一个压缩提交


编辑:您不必在一次提交中挤压所有更改。当然,也可以将您的30次提交分组为较小数量的较大提交

拉请求不能更改,因为它表示一个您不拥有的树,但是您可以签出表示拉请求的分支,并合并所有提交的压缩git merge-squash

尽管如此,我还是建议不要这样做:如果单独完成提交,这可能意味着需要完成一些增量工作。您可能会认为,现在工作已经完成,增量视图是无用的,但事实恰恰相反:如果您经历了一次回归,或者如果您在将来发现了一些笨拙的代码,您可能会试图找到合并代码的时间和原因,与6000行的大提交相比,小提交将帮助您更容易理解合并功能XXXX。 顺便说一句,如果小补丁比大补丁有效得多,我不是说它更快,我的意思是当修改很小并且提交者的意图明确时,你会发现更多的问题


也就是说,许多人使用壁球技术,因此我想这可以被视为当地的良好做法,毕竟,团队决定如何合作。

是的。git merge-squash正是这样做的。请参阅。谢谢您的详细解释。