我需要向master分支创建一个GitLab合并请求,其中包含我在fork上进行的一次提交。
但是,我已经向master分支打开了“合并请求”。
当我尝试创建一个新的提交时,(开放的)MR中的待处理提交也包括在内。
如何在MR中指定仅使用一个特定的提交? (而不是旧的)?
这样行吗? https://docs.gitlab.com/ee/user/project/merge_requests/cherry_pick_changes.html#cherry-picking-a-merge-request
谢谢!
答案 0 :(得分:2)
使用 GitLab 13.11(2021 年 4 月),您有一个替代工作流程:
<块引用>在 GitLab 13.11 中,如果您是项目成员,您现在可以从下游分支中挑选提交回到您的项目中。
我们在cherry-pick中添加了一个新的选择项目部分
对话框,当您选择 Options > Cherry-pick
时显示
提交的详细信息页面。
您的贡献者社区可以为您的项目做出贡献,您的团队不再需要手动下载分叉的 .patch
文件来从过时或未维护的分叉中提取好的更改。
未来的增强功能包括 cherry-picking commits from fork to fork。
参见 Documentation 和 Issue。
答案 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.推动分支。