Skip to main content

포크 동기화

웹 인터페이스, GitHub CLI 또는 명령줄을 사용하여 포크된 리포지토리를 업스트림 리포지토리와 동기화합니다.

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

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

웹 UI에서 포크된 브랜치 동기화

  1. 에서 GitHub업스트림 리포지토리와 동기화하려는 포크된 리포지토리의 기본 페이지로 이동합니다.

  2. 파일 목록 위에서 동기화 포크 드롭다운 메뉴를 선택합니다.

    포크의 기본 페이지 스크린샷. 동기화 아이콘과 "동기화 포크"가 레이블로 표시된 드롭다운 메뉴가 진한 주황색 윤곽선으로 표시되어 있습니다.

  3. 업스트림 리포지토리에서의 커밋에 대한 세부 정보를 검토한 다음 분기 업데이트를 클릭합니다.

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

포크 분기를 <a0/<a1/gt;와 동기화

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

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

gh repo sync owner/cli-fork -b BRANCH-NAME

업스트림 리포지토리의 변경 내용으로 인해 충돌이 발생하는 경우 동기화할 GitHub CLI 수 없습니다. 대상 분기를 덮어쓰려면 플래그를 --force 사용합니다.

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

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

  1. 터미널 또는 Git Bash를 엽니다.

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

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

    $ 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(-)
    

    로컬 분기에 고유한 커밋이 있는 경우 충돌을 해결해야 할 수 있습니다. 끌어오기 요청 병합 및 닫기을(를) 참조하세요.

포크를 동기화하면 리포지토리의 로컬 복사본만 업데이트됩니다. 포크를 GitHub Enterprise Server 인스턴스업데이트하려면 변경 내용을 푸시해야 합니다.