GitHub에서 포크된 저장소를 동기화하는 방법

GitHub에서 포크된 저장소를 동기화하는 방법
GitHub에서 포크된 저장소를 동기화하는 방법

포크를 최신 상태로 유지하세요:

GitHub에서 리포지토리를 포크하는 것은 개발자가 변경하고 끌어오기 요청을 제출하여 프로젝트에 기여할 수 있도록 하는 일반적인 방법입니다. 그러나 원본 저장소의 최신 변경 사항으로 포크를 업데이트하는 것은 다소 어려울 수 있습니다.

이 가이드에서는 포크된 저장소를 원본 저장소와 동기화하는 과정을 안내합니다. 노련한 개발자이든 초보자이든 이 단계별 튜토리얼은 포크가 최신 커밋을 통해 최신 상태를 유지할 수 있도록 도와줍니다.

명령 설명
git remote add upstream <URL> 원본 저장소를 'upstream'이라는 원격 저장소로 추가하여 소스 저장소의 변경 사항을 추적합니다.
git fetch upstream 다른 저장소(이 경우 업스트림 원격 저장소)에서 개체와 참조를 다운로드합니다.
git merge upstream/main 업스트림 기본 분기의 변경 사항을 현재 분기에 통합합니다.
git push origin main 로컬 기본 브랜치의 커밋으로 원격 저장소를 업데이트합니다.
git checkout main 로컬 저장소의 기본 분기로 전환합니다.
git remote -v Git이 원격 저장소에 대해 저장한 URL을 표시합니다.

Git 동기화 프로세스 이해

위에 제공된 스크립트는 사용자가 포크된 GitHub 저장소를 원본 소스 저장소와 동기화하는 데 도움이 되도록 설계되었습니다. 첫 번째 스크립트는 Git 명령줄 인터페이스(CLI)를 사용합니다. 포크된 저장소로 이동한 후 원본 저장소를 원격 저장소로 추가합니다. upstream. 이를 통해 로컬 Git 인스턴스가 원본 소스 저장소의 변경 사항을 추적할 수 있습니다. 명령 git fetch upstream 로컬 브랜치에 병합하지 않고 업스트림 저장소에서 최신 변경 사항을 가져옵니다. 다음을 사용하여 주요 지점으로 전환함으로써 git checkout main, 올바른 분기에서 작업하고 있는지 확인하세요.

다음으로 명령 업스트림 저장소에서 가져온 변경 사항을 로컬 기본 분기에 병합합니다. 이는 원본 프로젝트의 최신 커밋으로 포크를 최신 상태로 유지하는 데 중요합니다. 마지막으로 명령은 git push origin main 새로 병합된 변경 사항으로 GitHub의 포크된 저장소를 업데이트합니다. 선택적 단계에는 이 프로세스 중에 발생할 수 있는 병합 충돌을 해결하는 작업이 포함됩니다. 두 번째 스크립트는 GitHub 데스크톱 애플리케이션을 사용하여 유사한 워크플로를 제공하므로 명령줄보다 그래픽 인터페이스를 선호하는 사용자가 더 쉽게 액세스할 수 있습니다.

포크된 저장소를 업스트림 변경 사항과 동기화하기

Git 명령줄 인터페이스(CLI) 사용

# Step 1: Navigate to your forked repository
cd path/to/your/forked-repo

# Step 2: Add the original repository as an upstream remote
git remote add upstream https://github.com/original-owner/original-repo.git

# Step 3: Fetch the latest changes from the upstream repository
git fetch upstream

# Step 4: Check out your main branch
git checkout main

# Step 5: Merge the changes from the upstream/main into your local main branch
git merge upstream/main

# Step 6: Push the updated main branch to your fork on GitHub
git push origin main

# Optional: If you encounter conflicts, resolve them before pushing
# and commit the resolved changes.

GitHub 데스크톱을 사용하여 포크 업데이트

GitHub 데스크톱 애플리케이션 사용

# Step 1: Open GitHub Desktop and go to your forked repository

# Step 2: Click on the "Repository" menu and select "Repository Settings..."

# Step 3: In the "Remote" section, add the original repository URL as the upstream remote

# Step 4: Fetch the latest changes from the upstream repository
# by selecting "Fetch origin" and then "Fetch upstream"

# Step 5: Switch to your main branch if you are not already on it

# Step 6: Merge the changes from the upstream/main into your local main branch
# by selecting "Branch" and then "Merge into current branch..."

# Step 7: Push the updated main branch to your fork on GitHub
# by selecting "Push origin"

# Optional: Resolve any merge conflicts if they arise and commit the changes

포크된 저장소를 최신 상태로 유지: 추가 고려 사항

포크된 저장소를 유지 관리하는 또 다른 중요한 측면은 지점 관리의 중요성을 이해하는 것입니다. 개발자는 종종 별도의 분기에서 다양한 기능이나 수정 사항을 작업합니다. 포크를 동기화할 때 기본 분기를 업데이트하는 것뿐만 아니라 업스트림 변경 사항을 다른 활성 분기에 병합하는 것도 고려해야 합니다. 이렇게 하면 나중에 충돌을 방지하고 프로젝트의 모든 부분이 최신 업데이트와 일치하도록 보장할 수 있습니다.

또한 태그와 릴리스를 사용하는 것이 도움이 될 수 있습니다. 정기적으로 커밋에 태그를 지정하고 릴리스를 생성하면 프로젝트의 안정적인 버전을 추적할 수 있습니다. 동기화할 때 통합된 버전과 업데이트가 필요한 버전을 더 쉽게 식별할 수 있습니다. 이 방법은 여러 공동 작업자가 참여하는 대규모 프로젝트에서 특히 유용합니다.

포크된 저장소 동기화에 대한 일반적인 질문

  1. 원본 저장소를 원격으로 어떻게 추가합니까?
  2. 명령을 사용하십시오 git remote add upstream <URL> 원본 저장소를 추가합니다.
  3. 무엇을 git fetch upstream 하다?
  4. 이 명령은 병합하지 않고 업스트림 저장소에서 최신 변경 사항을 다운로드합니다.
  5. 메인 브랜치로 어떻게 전환하나요?
  6. 명령을 사용하십시오 git checkout main 메인 브랜치로 전환하세요.
  7. 목적은 무엇입니까? ?
  8. 이 명령은 업스트림 기본 분기의 변경 사항을 로컬 기본 분기에 병합합니다.
  9. GitHub에서 포크된 저장소를 어떻게 업데이트하나요?
  10. 변경 사항을 병합한 후 사용 git push origin main GitHub에서 포크를 업데이트합니다.
  11. GitHub Desktop을 사용하여 포크를 동기화할 수 있나요?
  12. 예, GitHub Desktop은 변경 사항을 가져오고 병합하고 푸시할 수 있는 그래픽 인터페이스를 제공합니다.
  13. 병합 중에 충돌이 발생하면 어떻게 되나요?
  14. 충돌을 수동으로 해결한 다음 해결된 변경 사항을 커밋해야 합니다.
  15. 태그와 릴리스를 사용해야 하는 이유는 무엇입니까?
  16. 태그와 릴리스는 안정적인 버전을 추적하고 업데이트를 더 쉽게 관리하는 데 도움이 됩니다.
  17. 메인 외에 다른 브랜치를 업데이트해야 합니까?
  18. 예, 다른 활성 분기를 업데이트하면 충돌을 방지하고 일관성을 보장하는 데 도움이 됩니다.

포크 동기화에 대한 최종 생각

포크된 저장소를 원본 저장소와 동기화된 상태로 유지하는 것은 기여의 무결성과 관련성을 유지하는 데 중요합니다. 정기적으로 변경 사항을 가져오고 병합하고 푸시하면 포크가 최신 개발 내용으로 최신 상태를 유지할 수 있습니다. Git 명령줄 인터페이스 및 GitHub Desktop과 같은 도구를 활용하면 이 프로세스가 단순화됩니다. 또한 병합 충돌을 즉시 해결하고 태그 및 릴리스를 사용하는 등의 모범 사례를 채택하면 워크플로우와 협업 효율성을 크게 향상시킬 수 있습니다.