Skip to main content

로컬에서 끌어오기 요청 체크 아웃

누군가가 리포지토리의 포크 또는 분기에서 끌어오기 요청을 보내면 로컬에서 병합하여 병합 충돌을 해결하거나 GitHub에 병합하기 전에 변경 내용을 테스트하고 확인할 수 있습니다.

누가 이 기능을 사용할 수 있나요?

Anyone with write access to a repository can pull a remote pull request down locally.

Platform navigation

Tool navigation

참고: 끌어오기 요청 작성자는 업스트림 리포지토리 유지 관리자 또는 업스트림 리포지토리에 대한 푸시 액세스 권한이 있는 사용자에게 사용자 소유 포크에서 끌어오기 요청의 비교 분기에 커밋 권한을 부여할 수 있습니다. 자세한 내용은 "포크에서 만든 끌어오기 요청 분기에 대한 변경 허용"을(를) 참조하세요.

로컬에서 활성 끌어오기 요청 수정

  1. 리포지토리 이름에서 끌어오기 요청을 클릭합니다.

    리포지토리의 기본 페이지 스크린샷입니다. 가로 탐색 모음에서 "끌어오기 요청"이라는 레이블이 있는 탭이 진한 주황색 윤곽선으로 표시되어 있습니다.

  2. 끌어오기 요청 목록에서 수정하려는 끌어오기 요청을 클릭합니다.

  3. 끌어오기 요청을 열 위치를 선택하려면 코드 드롭다운을 선택하고 탭 중 하나를 클릭합니다.

    끌어오기 요청 제목의 스크린샷. "코드"라는 레이블이 지정된 드롭다운 메뉴를 나타내는 화살표가 있는 단추가 진한 주황색 윤곽선으로 강조 표시됩니다.

Dependabot alerts의 자세한 내용은 “GitHub CLI 정보”를 참조하세요.

로컬로 끌어오기 요청을 체크 아웃하려면 gh pr checkout 하위 명령을 사용합니다. PULL-REQUEST를 끌어오기 요청의 숫자, URL 또는 헤드 분기로 바꿉니다.

gh pr checkout PULL-REQUEST

로컬에서 비활성 끌어오기 요청 수정

끌어오기 요청 작성자가 요청에 응답하지 않거나 포크를 삭제한 경우에도 해당 끌어오기 요청에서 제안된 변경 내용을 새로운 끌어오기 요청을 통해 병합할 수 있습니다. 그러나 끌어오기 요청을 변경하고 작성자가 응답하지 않는 경우 끌어오기 요청을 업데이트하기 위한 몇 가지 추가 단계를 수행해야 합니다.

끌어오기 요청이 열리면 GitHub는 모든 변경 내용을 원격으로 저장합니다. 즉, 끌어오기 요청의 커밋은 끌어오기 요청이 병합되기 전에도 리포지토리에서 사용할 수 있습니다. 열려 있는 끌어오기 요청을 가져와서 직접 다시 만들 수 있습니다.

누구나 이전에 열린 끌어오기 요청을 사용하여 작업을 계속하거나, 테스트하거나, 추가 변경 내용으로 새 끌어오기 요청을 열 수 있습니다. 그러나 푸시 액세스 권한이 있는 협력자만 끌어오기 요청을 병합할 수 있습니다.

  1. 리포지토리 이름 아래에서 문제 또는 끌어오기 요청을 클릭합니다.

    리포지토리의 기본 페이지 스크린샷입니다. 가로 탐색 모음에서 "문제" 및 "끌어오기 요청"이라는 레이블이 있는 두 개의 탭이 각각 진한 주황색으로 표시됩니다.

  2. “끌어오기 요청” 목록에서 병합하려는 끌어오기 요청을 클릭합니다.

  3. 비활성 끌어오기 요청의 ID 번호를 찾습니다. 끌어오기 요청의 제목 바로 뒤의 숫자 시퀀스입니다.

    끌어오기 요청 제목의 스크린샷. 끌어오기 요청의 ID 번호가 진한 주황색 윤곽선으로 표시되어 있습니다.

  4. Terminal(터미널)Terminal(터미널)Git Bash를 엽니다.

  5. ID 번호를 기반으로 하는 끌어오기 요청에 대한 참조를 가져와 프로세스에서 새 분기를 만듭니다.

    git fetch origin pull/ID/head:BRANCH_NAME
    
  6. 이 끌어오기 요청을 기반으로 하는 새 분기로 전환합니다.

    [main] $ git switch BRANCH_NAME
    > Switched to a new branch 'BRANCH_NAME'
    
  7. 이 시점에서 이 분기를 사용하여 원하는 모든 작업을 수행할 수 있습니다. 일부 로컬 테스트를 실행하거나 다른 분기를 분기에 병합할 수 있습니다.

  8. 준비가 되면 새 분기를 푸시할 수 있습니다.

    [pull-inactive-pull-request] $ git push origin BRANCH_NAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://github.com/USERNAME/REPOSITORY.git
    >  * [new branch]      BRANCH_NAME -> BRANCH_NAME
    
  9. 새 분기로 새 끌어오기 요청을 만듭니다.

오류: 일부 참조를 푸시하지 못했습니다.

원격 refs/pull/ 네임스페이스는 _읽기 전용_입니다. 커밋을 푸시하려고 하면 다음 오류가 표시됩니다.

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

팁: 원격 참조를 제거하거나 이름을 바꾸면 로컬 refs/pull/origin/ 네임스페이스가 git-remote에 대한 호출의 영향을 받지 않습니다.