Push 옵션
브랜치에 변경사항을 push할 때 클라이언트 측 Git push 옵션을 사용할 수 있습니다. Git 2.10 이상에서는 Git push 옵션을 사용하여 다음을 수행할 수 있습니다:
Git 2.18 이상에서는 긴 형식 (--push-option
) 또는 짧은 형식 -o
을 모두 사용할 수 있습니다:
git push -o <push_option>
Git 2.10에서 2.17까지는 반드시 긴 형식을 사용해야 합니다:
git push --push-option=<push_option>
서버 측 제어 및 모범 사례의 강제 적용을 위해서는 push 규칙 및 서버 후크을 참조하십시오.
GitLab CI/CD의 Push 옵션
Push 옵션을 사용하여 CI/CD 파이프라인을 건너뛰거나 CI/CD 변수를 전달할 수 있습니다.
참고: Push 옵션은 병합 요청 파이프라인에서는 사용할 수 없습니다. 자세한 정보는 이슈 373212를 참조하십시오.
Push 옵션 | 설명 | 예시 |
---|---|---|
ci.skip
| 최신 push에 대한 CI/CD 파이프라인을 생성하지 않습니다. 브랜치 파이프라인만 건너뛰며 병합 요청 파이프라인은 건너뛰지 않습니다. 이는 Jenkins와 같은 CI/CD 통합을 건너뛰지 않습니다. | git push -o ci.skip
|
ci.variable="<name>=<value>"
| CI/CD 변수를 CI/CD 파이프라인에 전달합니다. push로 인해 생성된 경우 브랜치 파이프라인에만 전달되며 병합 요청 파이프라인에는 전달되지 않습니다. | git push -o ci.variable="MAX_RETRIES=10" -o ci.variable="MAX_TIME=600"
|
integrations.skip_ci
| Atlassian Bamboo, Buildkite, Drone, Jenkins, JetBrains TeamCity와 같은 CI/CD 통합을 위한 push 이벤트를 건너뜁니다. GitLab 16.2에서 소개되었습니다. | git push -o integrations.skip_ci
|
병합 요청의 Push 옵션
Git push 옵션을 사용하여 변경 사항을 push하는 동안 병합 요청에 대한 작업을 수행할 수 있습니다:
Push 옵션 | 설명 |
---|---|
merge_request.create
| push된 브랜치에 대한 새로운 병합 요청을 생성합니다. |
merge_request.target=<branch_name>
| 병합 요청의 대상을 특정 브랜치로 설정합니다. 예: git push -o merge_request.target=branch_name
|
merge_request.target_project=<project>
| 병합 요청의 대상을 특정 상류 프로젝트로 설정합니다. 예: git push -o merge_request.target_project=path/to/project . GitLab 16.6에서 소개되었습니다.
|
merge_request.merge_when_pipeline_succeeds
| 파이프라인이 성공하면 병합 요청을 병합으로 설정합니다. |
merge_request.remove_source_branch
| 병합 시 소스 브랜치를 제거하도록 병합 요청을 설정합니다. |
merge_request.title="<title>"
| 병합 요청의 제목을 설정합니다. 예: git push -o merge_request.title="원하는 제목"
|
merge_request.description="<description>"
| 병합 요청의 설명을 설정합니다. 예: git push -o merge_request.description="원하는 설명"
|
merge_request.draft
| 병합 요청을 초안으로 표시합니다. 예: git push -o merge_request.draft . GitLab 15.0에서 소개되었습니다.
|
merge_request.milestone="<milestone>"
| 병합 요청의 마일스톤을 설정합니다. 예: git push -o merge_request.milestone="3.0" . GitLab 14.1에서 소개되었습니다.
|
merge_request.label="<label>"
| 병합 요청에 라벨을 추가합니다. 라벨이 없는 경우 생성됩니다. 예를 들어 두 개의 라벨을 추가하려면: git push -o merge_request.label="label1" -o merge_request.label="label2"
|
merge_request.unlabel="<label>"
| 병합 요청에서 라벨을 제거합니다. 두 개의 라벨을 제거하려면: git push -o merge_request.unlabel="label1" -o merge_request.unlabel="label2"
|
merge_request.assign="<user>"
| 병합 요청에 사용자를 할당합니다. 사용자 이름 또는 사용자 ID를 허용합니다. 두 명의 사용자를 할당하려면: git push -o merge_request.assign="user1" -o merge_request.assign="user2" . 사용자 이름 지원은 GitLab 15.5에 추가되었습니다.
|
merge_request.unassign="<user>"
| 할당된 사용자를 병합 요청에서 제거합니다. 사용자 이름 또는 사용자 ID를 허용합니다. 두 명의 사용자를 제거하려면: git push -o merge_request.unassign="user1" -o merge_request.unassign="user2" . 사용자 이름 지원은 GitLab 15.5에 추가되었습니다.
|
푸시 옵션 형식
푸시 옵션에 텍스트에 공백이 포함된 경우 텍스트를 이중 인용부호("
)로 묶어야 합니다. 공백이 없는 경우 인용부호를 생략할 수 있습니다. 몇 가지 예시:
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 -o merge_request.merge_when_pipeline_succeeds
일반 명령어에 대한 Git 별칭 생성
Git 명령어에 푸시 옵션을 추가하면 매우 긴 명령어가 생성될 수 있습니다. 만약 동일한 푸시 옵션을 자주 사용한다면 해당 옵션에 대한 Git 별칭을 생성하세요. Git 별칭은 긴 Git 명령어의 명령행 단축키입니다.
병합 시 파이프라인 성공 시 자동 병합 Git 푸시 옵션에 대한 Git 별칭을 생성하고 사용하려면 다음 단계를 따르세요:
-
터미널 창에서 다음 명령을 실행하세요:
git config --global alias.mwps "push -o merge_request.create -o merge_request.target=main -o merge_request.merge_when_pipeline_succeeds"
-
기본 브랜치(
main
)를 대상으로 하는 로컬 브랜치를 자동으로 병합하려면 다음 명령을 실행하세요:git mwps origin <로컬-브랜치-이름>
관련 주제
- Git 별칭 - Git 문서에서