# 포크 동기화

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

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

1. 에서 GitHub업스트림 리포지토리와 동기화하려는 포크된 리포지토리의 기본 페이지로 이동합니다.
2. 파일 목록 위에서 **동기화 포크** 드롭다운 메뉴를 선택합니다.

   ![포크의 기본 페이지 스크린샷. 동기화 아이콘과 "동기화 포크"가 레이블로 표시된 드롭다운 메뉴가 진한 주황색 윤곽선으로 표시되어 있습니다.](/assets/images/help/repository/sync-fork-dropdown.png)
3. 업스트림 리포지토리에서의 커밋에 대한 세부 정보를 검토한 다음 **분기 업데이트**를 클릭합니다.

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

## 포크 분기를 \<a0/\<a1/gt;와 동기화 <c0 />

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

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

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

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

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

포크를 업스트림 리포지토리와 동기화하려면 먼저 Git에서 업스트림 리포지토리를 가리키는 원격을 구성해야 합니다.
[포크에 대한 원격 리포지토리 구성하기](/ko/enterprise-server@3.22/pull-requests/how-tos/work-with-forks/configuring-a-remote-repository-for-a-fork)을(를) 참조하세요.

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

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

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

   ```shell
   $ 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`를 사용합니다.

   ```shell
   $ git checkout main
   > Switched to branch 'main'
   ```

5. 업스트림 기본 분기의 변경 내용을 로컬 기본 분기에 병합합니다. 이 예제에서 업스트림 기본 분기는 .입니다 `upstream/main`. 그러면 로컬 변경 내용이 손실되지 않고 포크의 기본 분기가 업스트림 리포지토리와 동기화됩니다.

   ```shell
   $ 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 설명서에서 [기본 분기 및 병합](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging) 을 참조하세요.

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

   로컬 분기에 고유한 커밋이 있는 경우 충돌을 해결해야 할 수 있습니다.
   [끌어오기 요청 병합 및 닫기](/ko/enterprise-server@3.22/pull-requests/how-tos/merge-and-close-pull-requests)을(를) 참조하세요.

> \[!TIP]
> 포크를 동기화하면 리포지토리의 로컬 복사본만 업데이트됩니다. 포크를 GitHub Enterprise Server 인스턴스업데이트하려면 [변경 내용을 푸시](/ko/enterprise-server@3.22/get-started/using-git/pushing-commits-to-a-remote-repository)해야 합니다.