Skip to main content
Skip to content

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

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

참고

이 기능은 공개 미리 보기로 제공되며 변경될 수 있습니다.

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

리베이스에서 충돌이 발생했다고 보고합니다.

연쇄 리베이스 중 충돌이 발생하면 gh stack rebase이 중지되고 충돌이 발생한 파일이 나열됩니다.

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

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

  2. 해결된 파일을 스테이징합니다.

    git add .
    
  3. 리베이스를 계속하세요. 나머지 분기는 자동으로 다시 기반됩니다.

    gh stack rebase --continue
    

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

gh stack rebase --abort

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

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

gh stack rebase
gh stack push

수정 세션이 시작되지 않음

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

  • 활성 스택이 체크 아웃되었습니다.
  • 작업 디렉터리는 깨끗한 상태입니다.
  • 재베이스가 진행 중이 아닙니다.
  • 병합을 위해 대기 중인 끌어오기 요청이 없습니다.
  • 커밋 기록은 선형입니다. 그렇지 않다면 먼저 gh stack rebase을 실행하세요.

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

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

gh stack modify --abort

변경 내용을 적용하는 동안 충돌이 발생했고 그래도 계속 진행하려면 충돌을 해결한 다음 git add로 파일을 스테이징하고 gh stack modify --continue을 실행하세요.

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

스택에 있는 풀 리퀘스트는 해당 풀 리퀘스트와 그 아래에 있는 모든 풀 리퀘스트가 모든 병합 요구 사항을 충족하고, 스택의 기록이 완전히 선형인 경우에만 병합할 수 있습니다. 병합이 차단된 경우 다음을 확인합니다.

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

선형 기록을 복원하려면 gh stack rebase을 실행한 다음 gh stack push을 실행하거나, 병합 상자에서 Rebase stack을 클릭합니다. 지침은 누적 끌어오기 요청 관리을(를) 참조하세요.

스택 처리 중간에 병합이 중지됨

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

  • 그 아래의 풀 리퀘스트는 성공적으로 병합된 경우 기본 브랜치에 반영된 상태로 유지됩니다.
  • 실패한 끌어오기 요청 및 위의 끌어오기 요청은 계속 열려 있습니다.

실패한 풀 리퀘스트의 문제를 해결한 다음, 나머지 스택도 병합되도록 병합을 다시 시도하세요.

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

스택은 병합 큐에 함께 유지됩니다. 풀 리퀘스트가 큐에서 제거되거나 제외되면, 스택에서 그 위에 있는 모든 풀 리퀘스트도 함께 큐에서 제외되고 제거됩니다. 기본 문제가 해결되면 스택을 큐에 다시 추가합니다.

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

스택의 중간에 있는 풀 리퀘스트를 닫았습니다.

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

GitHub 웹사이트에서 스택을 제거하거나 gh stack modify로 스택을 재구성할 수 있습니다. 스택을 제거하면 열기, 초안 및 닫힌 끌어오기 요청만 제거됩니다. 병합된 끌어오기 요청과 대기 중인 끌어오기 요청은 스택에 남아 있습니다. 누적 끌어오기 요청 관리누적 끌어오기 요청 관리을(를) 참조하세요.

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

스택형 풀 리퀘스트를 사용하려면 모든 브랜치가 동일한 리포지토리에 있어야 합니다. 교차 포크 스택은 지원되지 않습니다.