{"meta":{"title":"누적 끌어오기 요청","intro":"누적 끌어오기 요청이 작동하는 GitHub방법에 대한 규칙 및 요구 사항입니다.","product":"끌어오기 요청","breadcrumbs":[{"href":"/ko/pull-requests","title":"끌어오기 요청"},{"href":"/ko/pull-requests/reference","title":"참조"},{"href":"/ko/pull-requests/reference/stacked-pull-requests","title":"누적 끌어오기 요청"}],"documentType":"article"},"body":"# 누적 끌어오기 요청\n\n누적 끌어오기 요청이 작동하는 GitHub방법에 대한 규칙 및 요구 사항입니다.\n\n> \\[!NOTE] 이 기능은 공개 미리 보기로 제공되며 변경될 수 있습니다.\n\n스택은 동일한 리포지토리에 있는 일련의 끌어오기 요청으로, 각 끌어오기 요청이 아래 끌어오기 요청의 분기를 대상으로 하여 단일 분기(일반적으로 주 분기)에 배치되는 순서가 지정된 체인을 형성합니다. 하나의 큰 끌어오기 요청 대신 더 작은 끌어오기 요청 집합을 가져옵니다. 각 끌어오기 요청에는 고유한 포커스가 있는 diff가 있으므로 팀원은 각 계층을 독립적으로 검토하고 승인할 수 있습니다.\n\n스택의 모든 끌어오기 요청은 스택 **의 기본** 규칙(일반적으로 `main` 직접 대상으로 하는 분기)에 관계없이 평가됩니다. 즉, 중간 스택 끌어오기 요청은 아래쪽 끌어오기 요청과 동일한 표준으로 유지됩니다.\n\n> \\[!NOTE]\n>\n> * 스택형 풀 리퀘스트를 사용하려면 모든 브랜치가 동일한 리포지토리에 있어야 합니다. 교차 포크 스택은 지원되지 않습니다.\n> * 누적 끌어오기 요청은 .에서 GitHub Desktop지원되지 않습니다.\n\n## 누적 끌어오기 요청 가용성\n\n확장은 `gh stack`GitHub CLI 로컬 개발 워크플로를 처리합니다. 올바른 종속성 순서로 분기를 만들고 추적하고, 분기를 다시 기반으로 유지하고, 분기를 푸시하고, 끌어오기 요청을 만들고 연결하며, 레이어 간을 탐색합니다.\n\nGitHub CLI 가 필요하지 않습니다. 기본 Git 작업은 표준이며 대신 웹 사이트에서 스택을 GitHub 만들 수 있습니다.\n\nJujutsu 또는 Sapling과 같은 다른 도구를 사용하여 로컬 분기를 관리하고 푸시하는 경우 계속 사용 GitHub CLI 하거나 GitHub 웹 사이트에서 해당 분기에서 끌어오기 요청 스택을 열 수 있습니다.\n[누적 끌어오기 요청과 함께 다른 도구 사용](/ko/pull-requests/reference/use-other-tools-with-stacked-pull-requests)을(를) 참조하세요.\n\n## 누적 끌어오기 요청에 대한 트렁크\n\n스택의 **트렁크는** 아래쪽 끌어오기 요청의 기본 분기입니다. 스택의 다른 모든 끌어오기 요청은 그 위에 빌드됩니다. 트렁크는 기본적으로 리포지토리의 기본 분기(예: `main`)로 설정되지만 릴리스 분기 또는 수명이 긴 기능 분기와 같은 모든 분기일 수 있습니다.\n\n트렁크를 설정하려면:\n\n* **보낸 사람 GitHub CLI**`--base BRANCH` 이 옵션을 `gh stack init` 명령에 전달합니다(예: `gh stack init --base release auth-layer`).\n* **GitHub 웹 사이트에서** 트렁크로 원하는 분기에 대해 아래쪽 끌어오기 요청을 만듭니다. 스택의 나머지 부분 위에 빌드됩니다.\n\n분기 보호 규칙, 필수 검사 및 CI는 기본 분기뿐만 아니라 스택 대상의 트렁크에 대해 모두 평가됩니다.\n\n## 분기 보호 및 필수 검사\n\n다음은 각 끌어오기 요청이 바로 아래에 있는 분기가 아니라 스택 베이스를 대상으로 하는 것처럼 평가됩니다.\n\n| 규칙                                                        | 평가 방법             |\n| --------------------------------------------------------- | ----------------- |\n| 필수 검토                                                     | 스택 베이스에 대해 평가됩니다. |\n| 필수 상태 확인                                                  | 스택 베이스에 대해 평가됩니다. |\n| CODEOWNERS (코드 소유자)                                       | 스택 베이스에서 평가됩니다.   |\n| `CODEOWNERS` 낮은 끌어오기 요청에서 변경되지만 위의 끌어오기 요청에는 영향을 주지 않습니다. |                   |\n| 코드 검사 워크플로                                                | 스택 베이스에 대해 평가됩니다. |\n\n## GitHub Actions\n\nGitHub 작업 워크플로는 스택의 각 끌어오기 요청이 스택의 베이스를 대상으로 하는 것처럼 트리거됩니다. 스택의 `pull_request` 끌어오기 요청에 대해 `main` 실행되는 이벤트를 대상으로 \\*\\*\\*\\* 하여 실행되도록 구성된 워크플로는 아래쪽 요청뿐만 아니라 워크플로 변경이 필요하지 않습니다.\n\n스택의 기본 분기와 같은 스택 메타데이터는 워크플로 식 `github.event.pull_request.stack`에서 사용할 수 있습니다. 이 속성은 끌어오기 요청이 스택에 속하는 경우에만 존재합니다.\n\n중복 CI 사용을 줄이기 위한 메타데이터 필드 및 패턴의 전체 집합은 [누적 끌어오기 요청에 대한 CI 최적화](/ko/pull-requests/how-tos/merge-and-close-pull-requests/optimizing-ci-for-stacked-pull-requests)을 참조하세요.\n\n## 병합 요구 사항\n\n스택의 끌어오기 요청이 병합되기 전에 다음을 모두 true여야 합니다.\n\n* 끌어오기 요청은 필요한 검토, 필수 상태 검사 및 CODEOWNER 승인을 포함하여 스택 기반의 모든 분기 보호 요구 사항을 충족합니다.\n* 스택 **아래의 모든 끌어오기 요청**도 이러한 요구 사항을 충족합니다.\n* 스택에는 분기 간에 **완전한 선형 기록이** 있습니다.\n\n예를 들어 스택 `main ← PR1 ← PR2 ← PR3`에서 PR #3을 병합하려면 PR #1 및 PR #2도 검사를 통과하고, 필요한 검토를 수행하고, 모든 분기 보호 규칙을 충족해야 합니다.\n\n## 병합 메서드\n\n스택은 세 가지 병합 메서드를 모두 지원합니다. 각 경우에 끌어오기 요청은 단일 원자성 작업으로 토지를 요청합니다.\n\n* **병합 커밋** 은 병합되는 끌어오기 요청의 전체 그룹에 대해 하나의 병합 커밋을 만들어 각 끌어오기 요청의 전체 커밋 기록을 유지합니다.\n* **Squash** 는 끌어오기 요청당 하나의 깨끗하고 찌그러진 커밋을 만듭니다. 끌어오기 요청을 병합하면 `n` 기본 분기에 스쿼시된 커밋이 만들어집니다 `n` .\n* **Rebase** 는 각 끌어오기 요청의 커밋을 기본 분기로 재생하여 병합 커밋 없이 선형 기록을 만듭니다.\n\n## 병합 큐를 통해 병합\n\n스택은 병합 큐를 완벽하게 지원합니다. 스택의 모든 끌어오기 요청은 올바른 순서로 큐에 추가됩니다. 끌어오기 요청이 큐에서 제거되거나 제거되면 스택의 끌어오기 요청도 모두 제거됩니다.\n\n> \\[!NOTE]\n> 스택을 함께 유지하기 위해 병합 큐를 사용하면 병합 그룹이 구성된 최대 크기를 최대 50%까지 초과할 수 있습니다. 스택이 너무 커서 해당 버퍼 내에 맞지 않으면 연속된 병합 그룹에 자동으로 분할됩니다.\n\n## 선형 기록\n\n스택의 모든 분기 간에 완전한 선형 기록은 병합에 대한 엄격한 요구 사항입니다. 변경 내용이 하위 분기로 푸시되거나 트렁크가 앞으로 이동할 때 스택의 선형 기록이 손실될 수 있습니다.\n\n선형 기록을 복원하려면 연속 재베이스를 실행합니다.\n\n* **CLI에서 다음을** 실행 `gh stack rebase`한 다음 푸시합니다 `gh stack push`.\n* **웹 사이트에서 병합 상자에서 GitHub\\*\\*\\*\\*다시베이스 스택**을 클릭하여 서버 쪽 계단식 재베이스를 트리거합니다.\n\n지침은 [누적 끌어오기 요청 관리](/ko/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#rebasing-your-stack)을(를) 참조하세요.\n\n## 추가 읽기\n\n* [조직에 누적 끌어오기 요청 롤아웃](/ko/pull-requests/tutorials/roll-out-stacked-prs)"}