如何获取合并请求 URL,而不需要再次执行“git Push”?

问题描述 投票:0回答:1

当我推送我提交的代码时(使用

git push
),我从 gitlab 服务器收到一条非常好的、有用的消息,其中包含一个我可以立即用来设置合并请求的链接。它看起来像这样:

remote:
remote: To create a merge request for feature/xxxxx, visit:
remote:   https://gitlab.xxxxx.net/xxxxx/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fxxxxx
remote:

这对我来说是一条非常有用的消息,因为我可以简单地复制此链接并将其直接粘贴到网络浏览器中。直接访问此链接可以简化启动合并请求的过程,因为我可以跳过原本必须完成的几个步骤。

虽然我每次执行

git push
时都会收到此消息(也就是说,在我提交新更改之后),但我并不总是立即访问该链接。 (例如,我可能会选择继续修改我的代码,或者至少审查我的代码。)

但是稍后,当我准备好启动合并请求时,我无法再访问包含该链接的有用服务器文本。

当然,如果我有更多的代码要推送,这不是问题,但有时我没有额外的代码要推送。有没有办法让我再次看到这个有用的合并请求 URL?

我尝试过以下方法:

  • git push
  • git push --force

但他们都用一个简单的回应:

Everything up-to-date

所以简单地做一个

git push
是行不通的。 (我必须提交一些新的东西,然后做一个
git push
会给我我想要的信息。)

我的问题,重述:有没有一种方法可以让我看到合并请求 URL(gitlab 服务器给我的 URL),而不必重新提交代码和重新推送?

谢谢你。

git gitlab
1个回答
0
投票

GitLab 中的合并请求 URL 是静态的,它们与您所做的提交无关。

合并请求只是将一个分支合并到另一个分支的请求。默认情况下,合并发生在默认分支(例如,

main
)。

您可以简单地使用上一条消息中的相同 URL。

或者,您可以自己构造 URL。

从日志中获取原始 URL:

https://gitlab.xxxxx.net/xxxxx/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature%2Fxxxxx

%5B
%5D
可以分别解码为
[
]


URL可以这样解构:

https://

<GITLAB_URL>
/
<NAMESPACE>
/-/merge_requests/new?merge_request[source_branch]=
<BRANCH_NAME>


回答

只需提供分支名称而不是

<BRANCH_NAME>


对于 CI 管道

如果需要在 CI 管道中构造这样的 URL,可以使用内置的 GitLab 变量:

${CI_PROJECT_URL}
/merge_requests/new?merge_request[source_branch]=
${CI_COMMIT_BRANCH}

© www.soinside.com 2019 - 2024. All rights reserved.