【问题标题】:Gitlab merge request with --no-ffGitlab合并请求与--no-ff
【发布时间】:2016-08-01 07:10:53
【问题描述】:

Gitlab 是否支持 --no-ff 合并请求?

我在 Gitlab 中找到的,它只支持快进模式。在 Github 中,我们提供了 2 个选项:合并或压缩 (--no-ff)。

我想在批准合并请求时丢弃 Gitlab 主分支中的详细提交消息。这就是为什么我希望 Gitlab 中有 squash 选项。

【问题讨论】:

    标签: gitlab


    【解决方案1】:

    您可以在 repo 设置中配置 合并方法。可用选项有:

    合并提交

    每次合并都会创建一个合并提交,并且允许合并为 只要没有冲突。

    将提交与半线性历史合并

    为 每次合并,但只有在快进合并是允许的情况下才允许合并 可能的。这样你可以确保如果这个合并请求 将构建,在合并到目标分支后它也会构建。什么时候 快进合并是不可能的,用户可以选择 变基。

    快进合并

    没有创建合并提交,所有合并都是快进的,这 意味着只有当分支可以合并时才允许合并 快进。当无法进行快进合并时,用户 可以选择变基。

    这也适用于自托管 GitLab 社区版。

    【讨论】:

    • 但是,即使在合并提交(--no-ff)时,分支上的所有提交都会保留?
    • 这些方法适用于 gitlab 页面上的 Merge 按钮所做的事情,您仍然可以将它们与您想要的任何方法在本地合并并推送更改。
    • 麻烦太多了。我想我应该问一下 git squash。壁球与合并请求无关。这是不同的。 :D
    • @sancho21 迟早你必须学习命令行才能有效地使用 git。开始的好时机。
    【解决方案2】:

    挤压与--no-ff(无快进)没有真正的关系

    如果您只想删除噪音提交消息。你想压缩你的提交。如果您想删除合并提交,您可以快进(通过执行 rebase 来实现)。

    要压缩,您可以通过命令行使用

    git rebase -i HEAD~[NUMBER OF COMMITS]

    git reset --soft HEAD~3 git commit -m "New message for the combined commit"

    (还有其他方法可以实现)

    gitlab 上还有一个选项可以在合并时为您压缩提交。它使用合并请求的标题作为提交消息。

    一个例子

    您使用标题打开合并请求

    “WAR-132:上传文档时显示确认对话框”

    此合并请求包含三个提交

    WAR-132: Make code more concise.
    War-132: Add missing specs (and reorder, reformat of tests)
    WAR-132: Display a confirmation dialogue when the document is uploaded
    

    通过勾选 squash 提交选项(位于合并按钮旁边)。

    您最终会将以下提交添加到您要合并到的分支中。

    WAR-132: Display confirmation dialogue when document uploaded
    

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 2013-05-25
      • 1970-01-01
      • 2021-06-04
      • 2018-07-05
      • 2019-03-13
      • 2011-07-31
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多