GitHub에서 저장소 포크

John Wachira 2024년2월15일
GitHub에서 저장소 포크

이 문서에서는 GitHub에서 포크를 만들고 관리하는 프로세스를 간략하게 설명합니다. 포크는 GitHub 계정에서 관리하는 리포지토리의 복사본입니다.

포크를 사용하면 원래 리포지토리를 변경하지 않고도 프로젝트를 변경할 수 있습니다. 변경 사항을 가져오거나 포크를 통해 원래 소유자에게 변경 사항을 제안하여 포크를 업데이트할 수 있습니다.

GitHub에서 저장소 포크

GitHub에서 포크를 만들 때 다음을 수행할 수 있습니다.

  1. 원본 리포지토리에 대한 변경을 제안하는 풀 요청을 원래 소유자에게 보냅니다.
  2. 포크를 동기화하여 일반적으로 업스트림이라고 하는 원래 리포지토리의 변경 사항으로 업데이트합니다.

누군가의 프로젝트에 대한 변경 제안

포크를 사용하는 완벽한 시나리오는 누군가의 코드에서 버그를 발견했을 때입니다. 문제를 기록하는 대신 다음과 같이 간단하게 수행할 수 있습니다.

  1. 리포지토리를 포크합니다.
  2. 버그를 수정합니다.
  3. 소유자에게 풀 요청을 제출합니다.

프로젝트를 아이디어의 출발점으로 사용

다른 사람의 프로젝트를 우리 프로젝트의 출발점으로 사용할 수도 있습니다. 좋은 예는 API 프레임워크를 개발할 때입니다.

REST API의 예를 들어 보겠습니다. GitHub에는 수십 개의 상용구/템플릿 프로젝트가 있습니다.

이들 중 대부분은 공개 리포지토리이며 포크하고 변경을 시작할 수 있습니다.

GitHub에서 어떻게 포크합니까?

리포지토리 포크

포크할 리포지토리를 찾았으면 다음의 간단한 단계를 따르십시오. 그러면 즉시 실행됩니다.

  1. GitHub.com에서 포크하려는 리포지토리를 열고 오른쪽 상단으로 이동한 다음 포크를 클릭합니다.

    포크 버튼

  2. 포크 소유자를 선택하고 이름을 지정합니다. 포크에 대한 간단한 설명을 추가할 수도 있습니다. 또한 기본 분기만 복사할 수 있습니다.

    포크 생성

  3. 만족스러우면 Create Fork를 클릭하여 프로세스를 마칩니다. 이렇게 하면 계정에 리포지토리 복사본이 생성됩니다.

포크를 생성한 후 변경을 시작하려면 포크를 시스템에 복제해야 합니다. 포크를 복제하면 파일이 컴퓨터의 로컬 리포지토리로 이동합니다.

  1. GitHub의 포크로 이동하여 코드를 클릭합니다.

    GitHub 코드 버튼

  2. 이 세션에서는 HTTPS를 사용하여 저장소를 복제합니다. HTTPS에서 URL을 복사합니다.

    HTTPS URL

  3. Git Bash를 열고 복제하려는 작업 디렉토리로 전환합니다. 복사한 링크와 함께 git clone 명령을 사용하여 리포지토리를 복제합니다.

    복제 저장소

포크의 모든 파일과 분기가 로컬 컴퓨터에 복사되고 개발을 시작할 수 있습니다.

항상 포크를 원래 리포지토리로 최신 상태로 유지하는 것이 좋습니다. 다음 단계에 따라 포크를 원래 리포지토리와 동기화하도록 git을 구성할 수 있습니다.

  1. GitHub에서 원래 리포지토리로 이동하고 코드를 클릭합니다. (이전 세션과 동일).

  2. HTTPS URL을 복사하고 Git Bash를 엽니다.

  3. 다음으로 포크 복제본이 포함된 디렉토리로 전환하고 git remote -v 명령을 실행하여 포크로 구성된 원격을 확인합니다.

    Git 원격 실행

  4. 이제 아래와 같이 git remote add upstream 명령을 링크와 함께 사용할 수 있습니다.

    $ git remote add upstream https://github.com/app-generator/flask-corona-dark.git
    

    Git Remote 추가 업스트림 실행

포크를 동기화하기 위해 git fetch upstream 명령을 실행하여 업스트림에서 가져옵니다.

Git Fetch 업스트림 실행

이제 git merge upstream/master 명령을 사용하여 업스트림 master 브랜치의 변경 사항을 로컬 포크의 master 브랜치와 병합할 수 있습니다. 진행하기 전에 로컬 마스터 브랜치에 체크아웃했는지 확인하십시오. 이 경우 마스터는 포크의 기본 분기입니다.

로컬 리포지토리에 고유한 커밋이 있는 경우 충돌을 처리해야 합니다. 그렇지 않은 경우 fast-forward 병합을 수행합니다.

그러면 업스트림 변경 사항으로 마스터 분기가 업데이트됩니다. 남은 것은 GitHub의 포크에 변경 사항을 적용하는 것입니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

관련 문장 - Git Pull