只需一次提交即可合并请求

时间:2019-06-11 09:36:49

标签: git gitlab


我需要向master分支创建一个GitLab合并请求,其中包含我在fork上进行的一次提交。
但是,我已经向master分支打开了“合并请求”。 当我尝试创建一个新的提交时,(开放的)MR中的待处理提交也包括在内。 如何在MR中指定仅使用一个特定的提交? (而不是旧的)? 这样行吗? https://docs.gitlab.com/ee/user/project/merge_requests/cherry_pick_changes.html#cherry-picking-a-merge-request 谢谢!

3 个答案:

答案 0 :(得分:2)

使用 GitLab 13.11(2021 年 4 月),您有一个替代工作流程:

<块引用>

从叉子到父级的樱桃选择提交

在 GitLab 13.11 中,如果您是项目成员,您现在可以从下游分支中挑选提交回到您的项目中。

我们在cherry-pick中添加了一个新的选择项目部分 对话框,当您选择 Options > Cherry-pick 时显示 提交的详细信息页面。

您的贡献者社区可以为您的项目做出贡献,您的团队不再需要手动下载分叉的 .patch 文件来从过时或未维护的分叉中提取好的更改。

未来的增强功能包括 cherry-picking commits from fork to fork

https://about.gitlab.com/images/13_11/cherry_pick_commits_from_fork_to_parent.png -- Cherry pick commits from fork to parent

参见 DocumentationIssue

答案 1 :(得分:1)

从一个分支到另一个分支的合并请求将始终包含branch to merge所包含的所有提交,因为它是从branch to merge into分支出来的(在您的情况下为master)。但是,您可以从master分支中创建一个新分支,挑选单个提交,并为该分支创建一个合并请求,仅包含一个提交。

如果您不再需要其他提交,则还可以考虑使用交互式rebase,以从分支中删除不需要的提交。

GitLab中用于合并请求的cherry-pick功能仅在合并请求可用。它允许您将合并的更改转移到另一个分支,例如,当您需要将修补程序部署到发布分支,然后将修补程序挑选到主分支时。

答案 2 :(得分:0)

请按照以下步骤操作: 1,删除合并请求并从github分支 2.运行命令:git log并安全保存您想要的提交ID。 3.从本地删除分支。 4.从同一来源再次创建新分支。 5.并为每个提交ID在命令下面运行。从下到上。(在最后一次使用最新提交)    git cherry-pick 6.推动分支。