Push Options
原文:https://docs.gitlab.com/ee/user/project/push_options.html
Push Options
在 GitLab 11.7 中引入 .
GitLab 支持使用客户端Git 推送选项在推送更改的同时执行各种操作. 此外, 推送规则提供服务器端控制和实施选项.
当前,有推送选项可用于:
注意: Git 推送选项仅在 Git 2.10 或更高版本中可用.
对于 2.10 至 2.17 版本的 Git,请使用--push-option
:
git push --push-option=<push_option>
对于 2.18 及更高版本,可以使用以上格式,或更短的-o
:
git push -o <push_option>
Push options for GitLab CI/CD
您可以使用推入选项跳过 CI / CD 管道或传递环境变量.
推送选项 | Description | 版本介绍 |
---|---|---|
ci.skip |
不要为最新推送创建 CI 管道. | 11.7 |
ci.variable="<name>=<value>" |
如果由于推送而创建了环境变量 ,请提供要在 CI 管道中使用的环境变量 . | 12.6 |
使用ci.skip
的示例:
git push -o ci.skip
An example of passing some environment variables for a pipeline:
git push -o ci.variable="MAX_RETRIES=10" -o ci.variable="MAX_TIME=600"
Push options for merge requests
您可以在推送更改的同时使用 Git 推送选项对合并请求执行某些操作:
推送选项 | Description | 版本介绍 |
---|---|---|
merge_request.create |
为推送的分支创建一个新的合并请求. | 11.10 |
merge_request.target=<branch_name> |
将合并请求的目标设置为特定分支. | 11.10 |
merge_request.merge_when_pipeline_succeeds |
设置合并请求以在其管道成功时进行合并 . | 11.10 |
merge_request.remove_source_branch |
设置合并请求以在合并时删除源分支. | 12.2 |
merge_request.title="<title>" |
设置合并请求的标题. 例如: git push -o merge_request.title="The title I want" . |
12.2 |
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" . |
12.3 |
merge_request.unlabel="<label>" |
从合并请求中删除标签. 例如,对于两个标签: git push -o merge_request.unlabel="label1" -o merge_request.unlabel="label2" . |
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 push -o merge_request.create -o merge_request.target=my-target-branch -o merge_request.merge_when_pipeline_succeeds
Useful Git aliases
如上所示,Git 推送选项可能导致 Git 命令增长很长. 如果您经常使用相同的 push 选项,则创建Git 别名会很有用. Git 别名是 Git 的命令行快捷方式,可以大大简化长 Git 命令的使用.
Merge when pipeline succeeds alias
要在管道成功执行 Git push 选项时为合并设置 Git 别名:
git config --global alias.mwps "push -o merge_request.create -o merge_request.target=master -o merge_request.merge_when_pipeline_succeeds"
然后,为了在管道成功时快速推送将针对 master 并合并的本地分支:
git mwps origin <local-branch-name>