繁体   English   中英

如何防止 Gitlab 在分支合并时创建额外的合并提交

[英]How to prevent Gitlab from creating extra merge commit on branch merge

我在我的项目中使用 GitLab。 我正在探索合并请求功能。

  1. 我从master创建了一个topic_branch
  2. topic_branch上做了一堆提交。
  3. topic_branch推送到远程。
  4. master上创建合并请求以从topic_branch中提取更改。
  5. 在 Gitlab 中接受合并时, master提取了所有提交并创建了一个合并提交,看到代码重复是很可怕的。

我应该在分支上创建大量提交,然后创建合并请求。 但是master仍然会有两个新的提交,一个来自分支,另一个是合并提交。 我假设,如果我从命令行执行此操作,即

  1. master
  2. topic_branch合并到master
  3. commit / push master在这种情况下, master上只有 1 次提交。

如何从 GitLab 实现这个?

TL; 博士

您的项目 > 设置 > 常规 > 合并请求设置 > 快进合并。

就个人而言,我也更喜欢在每次合并时进行squash commits


我认为 GitLab 现在支持这一点。

脚步

  1. 转到您的project
  2. 导航到项目settings (注意:这不是右上角的配置文件设置)
  3. 转到General选项卡。
  4. 导航到Merge Request Settings部分
  5. 选择Fast-Forward Merge

在此处输入图片说明

我应该在分支上创建一个提交的壁球

GitLab 13.3 (2020 年 8 月)中,有一个新选项对您来说很有趣:

壁球提交选项

在 Git 中压缩提交是将多个提交合并为一个的好方法。
在向上游推送之前,将多个提交(这些提交本身可能提供很少的历史价值)分组为单个大型提交非常有用。
推送单个提交允许更有意义的提交消息,并确保提交组提供“绿色”持续集成管道。

在 GitLab 13.3 中,我们为压缩提交添加了可配置的默认值,允许项目维护人员配置选项以适合他们的首选工作流程。

由于更改壁球配置可能会引入不需要的行为,因此未更改新项目或现有项目的配置。 获得 314 票 👍,这是社区要求最高的改进之一,我们希望它能让更多用户使用这个强大的功能。

https://about.gitlab.com/images/13_3/create_source_code_configurable_defaults_for_squash_commits_option.png -- 挤压提交选项

请参阅文档问题

更新当前 gitlab 支持拒绝非快进提交和压缩合并请求的多个提交,所以我下面的评论不再有效

原创内容

如果您不想进行合并提交,请不要​​进行合并。 这意味着在目标分支(主)和推送上做一个 rebase。

正如我从http://doc.gitlab.com/ee/workflow/rebase_before_merge.html了解到的,GitLab 将始终创建合并提交以保留一种恢复整个分支的方法。

  1. 结账master
  2. topic_branch合并到master
  3. commit / push master在这种情况下,在master上只会有 1 次提交。

那不是真的。 您将在topic_branch拥有来自topic_branch所有提交和Merge branch 'topic_branch'提交,除非自从您从topic_branch分支后没有向 master 分支添加任何提交。 在这种情况下, git merge的默认行为是执行快进合并 快进合并将您的topic_branch es 更改合并到 master,而无需合并提交(请参阅此处以获取更多文档)。

但是,当您在 GitLab 中创建合并请求时,顾名思义,您是在请求将您的topic_branch合并到您的代码库中。 默认情况下,GitLab 将始终创建合并请求,即使可能进行快进合并,以保留提交是在历史记录中的另一个分支上开发的事实。

现在好消息是:您可以配置 GitLab 以执行快进合并,而不是创建合并提交:请参阅此处 然而,这似乎只能在 GitLab 企业版中实现。

好吧,正如医生所说

GitLab 企业版提供了一种在合并合并请求之前变基的方法。 您可以通过导航到项目设置页面并选择 Merge Requests Rebase 复选框来配置每个项目的基础。

基本上企业版是重点,rebase function 付费。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM