# 누적 끌어오기 요청 문제 해결

재베이스 충돌, 차단된 병합, 중단된 작업 및 병합 큐 문제를 포함하여 누적 끌어오기 요청과 관련된 일반적인 문제를 해결합니다.

> \[!NOTE] 이 기능은 공개 미리 보기로 제공되며 변경될 수 있습니다.

이 문서에서는 누적 끌어오기 요청을 사용할 때 발생할 수 있는 일반적인 문제 및 해결 방법에 대해 설명합니다.

## 재베이스에서 충돌을 보고합니다.

연속 재베이스에서 충돌이 발생하면 충돌 `gh stack rebase` 파일을 중지하고 나열합니다.

충돌을 해결하고 계속하려면 다음을 수행합니다.

1. 충돌하는 각 파일을 열고 충돌 표식(`<<<<<<<`, `=======`, `>>>>>>>`)을 해결합니다.

2. 확인된 파일을 스테이징합니다.

   ```shell
   git add .
   ```

3. 다시베이스를 계속합니다. 나머지 분기는 자동으로 다시 기반됩니다.

   ```shell
   gh stack rebase --continue
   ```

충돌이 너무 복잡하거나 다시 시작하려는 경우 다시베이스를 중단하여 모든 분기를 해당 프리베이스 상태로 복원합니다.

```shell
gh stack rebase --abort
```

## 충돌로 인해 동기화가 중지됨

실행하는 `gh stack sync`동안 충돌이 감지되면 모든 분기가 원래 상태로 복원되므로 부분적으로 업데이트되지 않습니다. rebase를 직접 실행하여 대화형으로 충돌을 해결한 다음 업데이트된 분기를 푸시합니다.

```shell
gh stack rebase
gh stack push
```

## 수정 세션이 시작되지 않음

`gh stack modify` 에는 깨끗한 시작 상태가 필요합니다. 시작되지 않으면 다음을 확인합니다.

* 활성 스택이 체크 아웃되었습니다.
* 작업 트리는 깨끗합니다.
* 재베이스가 진행 중이 아닙니다.
* 병합을 위해 대기 중인 끌어오기 요청이 없습니다.
* 커밋 기록은 선형입니다. 그렇지 않은 경우 먼저 실행 `gh stack rebase` 합니다.

## 수정 세션이 중단되었습니다.

예를 들어 해결하지 않으려는 충돌이나 터미널 충돌로 인해 중단된 경우 `gh stack modify` 시작 전의 상태로 스택을 복원할 수 있습니다. 사전 수정 스냅샷은 복구를 위해 로컬로 캐시됩니다.

```shell
gh stack modify --abort
```

변경 내용을 적용하는 동안 충돌이 발생하여 계속 진행하려는 경우 충돌을 해결하고 파일을 스테이징한 `git add`다음 실행 `gh stack modify --continue`합니다.

## 끌어오기 요청을 병합할 수 없습니다.

스택의 끌어오기 요청은 병합할 수 있으며, 스택 아래의 모든 끌어오기 요청은 모든 병합 요구 사항을 충족하며 스택에는 완전한 선형 기록이 있습니다. 병합이 차단된 경우 다음을 확인합니다.

* 끌어오기 요청 및 아래의 모든 끌어오기 요청에는 필요한 검토 및 통과 검사가 있습니다.
* 스택에는 선형 기록이 있습니다. 변경 내용이 하위 분기로 푸시되었거나 트렁크가 앞으로 이동한 경우 기록은 더 이상 선형이 아닐 수 있습니다.

선형 기록을 복원하려면 병합 상자에서 다시**베이스 스택**을 실행 `gh stack rebase` 한 다음 `gh stack push`클릭합니다. 지침은 [누적 끌어오기 요청 관리](/ko/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests)을(를) 참조하세요.

## 스택을 통해 중간에 중지된 병합

병합 전 검사는 병합 전에 실행되지만 병합은 여전히 실패할 수 있습니다. 예를 들어 예기치 않은 충돌 또는 일시적인 오류로 인해 발생합니다. 오류가 발생하는 경우 병합은 해당 끌어오기 요청에서 중지됩니다.

* 병합된 끌어오기 요청은 기본 분기에 성공적으로 착륙된 상태로 유지됩니다.
* 실패한 끌어오기 요청 및 위의 끌어오기 요청은 계속 열려 있습니다.

실패한 끌어오기 요청에서 문제를 해결한 다음 병합을 다시 시도하여 스택의 나머지 부분을 착지합니다.

## 병합 큐에서 끌어오기 요청이 제거되었습니다.

스택은 병합 큐에 함께 유지됩니다. 끌어오기 요청이 큐에서 제거되거나 제거되면 스택의 끌어오기 요청도 모두 제거되고 제거됩니다. 기본 문제가 해결되면 스택을 큐에 다시 추가합니다.

큰 스택은 연속된 병합 그룹에 분할될 수도 있습니다. 병합 큐를 사용하면 병합 그룹이 구성된 최대 크기를 최대 50%까지 초과하여 스택을 함께 유지할 수 있으며, 전체 스택이 착륙할 때까지 해당 스택에 맞지 않는 끌어오기 요청은 후속 그룹에서 계속됩니다.

## 스택 중간에 끌어오기 요청을 닫았습니다.

스택 중간에 끌어오기 요청을 닫으면 위의 모든 끌어오기 요청이 병합할 수 없게 됩니다. 스택 관계는 유지되므로 다른 끌어오기 요청을 열거나 스택의 구조를 변경하려면 먼저 스택을 디졸브한 다음 다시 만들어야 합니다.

웹 사이트에서 스택을 GitHub 제거하거나 .`gh stack modify` 스택을 제거하면 열기, 초안 및 닫힌 끌어오기 요청만 제거됩니다. 병합된 끌어오기 요청과 대기 중인 끌어오기 요청은 스택에 남아 있습니다.
[누적 끌어오기 요청 관리](/ko/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#unstacking-from-the-github-website) 및 [누적 끌어오기 요청 관리](/ko/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#restructuring-a-stack)을(를) 참조하세요.

## 다시베이스 후 커밋이 서명되지 않음

끌어오기 요청에서 트리거된 재베이스는 '서버'에서 GitHub실행되며 해당 커밋은 서명 **되지 않습니다** . 리포지토리에 서명된 커밋이 필요한 경우 대신 다시 GitHub CLI 기반합니다.

* 실행 `gh stack rebase` 은 로컬 Git 작업을 사용하므로 생성된 커밋은 로컬 Git 커밋 서명 구성을 따릅니다.
* 재지정 후 업데이트된 분기를 .으로 `gh stack push`푸시합니다.

## 포크 간에 스택을 만들 수 없습니다.

누적 끌어오기 요청은 모든 분기가 동일한 리포지토리에 있어야 합니다. 포크 간 스택은 지원되지 않습니다.