Skip to main 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클릭합니다. 지침은 누적 끌어오기 요청 관리을(를) 참조하세요.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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