Skip to main content

포크 동기화

리포지토리의 포크를 동기화하여 업스트림 리포지토리를 최신 상태로 유지합니다.

Who can use this feature

People with write access for a forked repository can sync the fork to the upstream repository.

웹 UI에서 포크 분기 동기화

  1. GitHub AE에서 업스트림 리포지토리와 동기화하려는 포크된 리포지토리의 기본 페이지로 이동합니다.
  2. 업스트림 가져오기 드롭다운을 선택합니다. “업스트림 가져오기” 드롭다운
  3. 업스트림 리포지토리에서의 커밋에 대한 세부 정보를 검토한 다음 가져오기 및 병합을 클릭합니다. “가져오기 및 병합” 단추

업스트림 리포지토리의 변경으로 인해 충돌이 발생하는 경우 GitHub는 충돌을 해결하기 위한 끌어오기 요청을 만들라는 메시지를 표시합니다.

포크 분기를 GitHub CLI와 동기화

GitHub CLI는 컴퓨터의 명령줄에서 GitHub를 사용하기 위한 오픈 소스 도구입니다. 명령줄에서 작업하는 경우 GitHub CLI을(를) 사용하여 시간을 절약하고 컨텍스트 전환을 방지할 수 있습니다. GitHub CLI에 대한 자세한 내용은 “GitHub CLI 정보”를 참조하세요.

부모에서 원격 포크를 업데이트하려면 gh repo sync -b BRANCHNAME 하위 명령을 사용하고 포크 및 분기 이름을 인수로 제공합니다.

$ gh repo sync owner/cli-fork -b BRANCH_NAME

업스트림 리포지토리의 변경으로 인해 충돌이 발생하는 경우 GitHub CLI는 동기화할 수 없습니다. -force 플래그를 설정하여 대상 분기를 덮어쓸 수 있습니다.

명령줄에서 포크 분기 동기화

포크를 업스트림 리포지토리와 동기화하려면 먼저 Git에서 업스트림 리포지토리를 가리키는 원격을 구성해야 합니다. 자세한 내용은 "포크에 대한 원격 리포지토리 구성"을 참조하세요.

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

  2. 현재 작업 디렉터리를 로컬 프로젝트로 변경합니다.

  3. 업스트림 리포지토리에서 분기 및 해당 커밋을 가져옵니다. BRANCHNAME에 대한 커밋은 로컬 분기 upstream/BRANCHNAME에 저장됩니다.

    $ git fetch upstream
    > remote: Counting objects: 75, done.
    > remote: Compressing objects: 100% (53/53), done.
    > remote: Total 62 (delta 27), reused 44 (delta 9)
    > Unpacking objects: 100% (62/62), done.
    > From https://HOSTNAME/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      main     -> upstream/main
  4. 포크의 로컬 기본 분기를 확인합니다. 이 경우 main을 사용합니다.

    $ git checkout main
    > Switched to branch 'main'
  5. 업스트림 기본 분기(이 경우 upstream/main)의 변경 내용을 로컬 기본 분기에 병합합니다. 이렇게 하면 로컬 변경 내용이 손실되지 않고 포크의 기본 분기가 업스트림 리포지토리와 동기화됩니다.

    $ git merge upstream/main
    > Updating a422352..5fdff0f
    > Fast-forward
    >  README                    |    9 -------
    >  README.md                 |    7 ++++++
    >  2 files changed, 7 insertions(+), 9 deletions(-)
    >  delete mode 100644 README
    >  create mode 100644 README.md

    로컬 분기에 고유한 커밋이 없는 경우 Git에서 빠른 전달을 수행합니다. 자세한 내용은 Git 설명서의 기본 분기 및 병합을 참조하세요.

    $ git merge upstream/main
    > Updating 34e91da..16c56ad
    > Fast-forward
    >  README.md                 |    5 +++--
    >  1 file changed, 3 insertions(+), 2 deletions(-)

    로컬 분기에 고유한 커밋이 있는 경우 충돌을 해결해야 할 수 있습니다. 자세한 내용은 “병합 충돌 해결”을 참조하세요.

: 포크를 동기화하면 리포지토리의 로컬 복사본만 업데이트됩니다. your enterprise에서 포크를 업데이트하려면 변경 내용을 푸시해야 합니다.