Gitlab:为什么“squash”合并创建两个提交?

时间:2018-05-02 12:42:20

标签: git gitlab

重现它:

  1. 创建问题
  2. 从问题
  3. 打开合并请求(MR)
  4. 使用多次提交进行更改
  5. 检查“壁球提交”并合并MR
  6. 为什么在历史上创建两个提交完全相同的提交?

    提交标题:

    1. 将分支'123-branch-name'合并到'dev'
    2. 完整问题名称
    3. 有什么意义?

1 个答案:

答案 0 :(得分:4)

听起来你创建了一个包含你的更改的提交(commit Full Issue name)和一个合并提交,将来自该提交的更改合并到dev分支。

通常会为每个合并请求创建合并提交。这可以通过选择例如Settings - > Merge Request Settings进行更改。 Fast Forward Merge Merge Commitdev。这将导致只有一个提交在您当前的dev HEAD之上,只有在squash commits可以快速转发时才会有效。

检查merge commit将在合并之前压缩要合并的功能分支中的所有提交。因此,如果您的功能分支中有多个提交,它们将被压缩为一个提交,这将被合并,如您所述创建合并提交(只要您的合并请求设置设置为<div id="foo" style="width:20px;height:20px;background-color:#ffcc00;" onclick="javascript:updateFired(event)"></div> ,见上文)。

关键是您可能希望看到更改是在不同的分支上执行的。这是通过快速转发您合并的分支来完成的,而是创建合并请求。这显示合并了两行开发,而快进合并(不创建合并提交)则不会。