Push Options
Push Options
在 GitLab 11.7 中引入 .
GitLab 支持使用客户端在推送更改的同时执行各种操作. 此外, 推送规则提供服务器端控制和实施选项.
当前,有推送选项可用于:
注意: Git 推送选项仅在 Git 2.10 或更高版本中可用.
对于 2.18 及更高版本,可以使用以上格式,或更短的-o
:
您可以使用推入选项跳过 CI / CD 管道或传递环境变量.
使用ci.skip
的示例:
git push -o ci.skip
An example of passing some environment variables for a pipeline:
推送选项 | Description | 版本介绍 |
---|---|---|
merge_request.create |
为推送的分支创建一个新的合并请求. | |
merge_request.target=<branch_name> |
将合并请求的目标设置为特定分支. | 11.10 |
设置合并请求以进行合并 . | ||
merge_request.remove_source_branch |
设置合并请求以在合并时删除源分支. | 12.2 |
merge_request.title="<title>" |
设置合并请求的标题. 例如: git push -o merge_request.title="The title I want" . |
|
merge_request.description="<description>" |
设置合并请求的描述. 例如: git push -o merge_request.description="The description I want" . |
12.2 |
merge_request.label="<label>" |
将标签添加到合并请求. 如果标签不存在,它将被创建. 例如,对于两个标签: git push -o merge_request.label="label1" -o merge_request.label="label2" . |
|
merge_request.unlabel="<label>" |
从合并请求中删除标签. 例如,对于两个标签: . | 12.3 |
如果您使用要求文本带有空格的 push 选项,则需要用引号( "
)括起来.如果没有空格,则可以省略引号.例如:
git push -o merge_request.label="Label with spaces"
git push -o merge_request.label=Label-with-no-spaces
您可以通过使用多个-o
(或--push-option
)标志来组合推送选项以一次完成多个任务. 例如,如果您要创建一个新的合并请求,并定位一个名为my-target-branch
:
git push -o merge_request.create -o merge_request.target=my-target-branch
此外,如果希望合并请求在管道成功后立即合并,则可以执行以下操作:
如上所示,Git 推送选项可能导致 Git 命令增长很长. 如果您经常使用相同的 push 选项,则创建很有用. Git 别名是 Git 的命令行快捷方式,可以大大简化长 Git 命令的使用.
git config --global alias.mwps "push -o merge_request.create -o merge_request.target=master -o merge_request.merge_when_pipeline_succeeds"
然后,为了在管道成功时快速推送将针对 master 并合并的本地分支: