GitHub의 분기와 복제의 차이점
이 문서에서는 GitHub에서 포크와 복제의 차이점을 설명합니다. 일반 GitHub 사용자라면 이러한 용어를 접했을 것입니다.
초보자에게는 GitHub에서 분기 및 복제가 다소 혼란스러울 수 있습니다. 공개 GitHub 리포지토리와 상호 작용할 때 두 용어가 모두 적용됩니다.
두 가지가 어떻게 다른지 논의해 봅시다.
GitHub의 분기와 복제의 차이점
각 용어의 작동 방식과 적용 시기를 정의하고 논의할 것입니다. 포크부터 시작하겠습니다.
GitHub에서 포크
GitHub에서 분기하려면 자신의 개인 GitHub 계정에 공용 리포지토리의 복사본을 생성해야 합니다. GitHub에서 리포지토리를 포크하는 이유는 무엇입니까?
테스트할 프로젝트가 있는 공개 GitHub 리포지토리를 찾았다고 가정해 보겠습니다. 로컬 시스템에 코드 사본이 필요합니다.
코드에서 버그를 찾아 수정하는 경우 소유자가 허용하지 않는 한 변경 사항을 공개 저장소에 푸시할 수 없습니다.
여기에서 포크가 작동합니다. 포크를 만든 후에는 원래 리포지토리에 영향을 주지 않고 변경할 수 있는 포크된 리포지토리의 로컬 복사본을 만들 수 있습니다.
여기에서 원래 리포지토리에 대한 풀 요청을 생성할 수 있으며 소유자가 변경 사항이 이상적이라고 판단하는 경우 풀 요청을 수락할 수 있으며 코드가 원래 리포지토리에 통합됩니다.
이것은 분기의 다양한 사용 사례 중 하나입니다. 분기의 또 다른 일반적인 사용 사례는 다른 개발자와 공동으로 프로젝트를 작업하는 경우입니다.
귀사가 GitHub에서 원격 리포지토리를 호스팅하기로 결정했다고 가정해 보겠습니다. 이 경우 여러 개발자가 동일한 리포지토리에 푸시하는 것보다 리포지토리의 포크를 만들고 포크로 푸시하고 풀 요청을 만드는 것이 더 쉽습니다.
원본 리포지토리에 변경 사항이 도입될 때마다 로컬 리포지토리 및 포크를 원본과 동기화할 수 있습니다.
GitHub에서 어떻게 포크합니까?
공개 GitHub 리포지토리를 포크하려면 리포지토리로 이동하여 아래 그림과 같이 포크
아이콘을 누릅니다.
포크의 이름과 설명을 변경할 수 있는 새 탭이 로드됩니다. 모든 브랜치를 포크하려면 마스터 브랜치만 복사
상자를 선택 취소하고 Create Fork
를 누르십시오.
그런 다음 분기된 리포지토리의 로컬 복사본을 만들어 다음 섹션으로 이동할 수 있습니다.
GitHub에서 복제
우리는 모든 개발이 로컬에서 수행된다는 것을 알고 있습니다. 컴퓨터에 코드의 로컬 복사본이 없으면 프로젝트에서 작업할 수 없습니다.
여기에서 복제가 시작됩니다. 복제는 로컬 시스템에 원격 리포지토리의 로컬 복사본을 생성합니다.
복제한 후에는 코드 조정을 시작하고 원래 리포지토리에 기여할 수 있습니다. 리포지토리를 어떻게 복제합니까?
이 예에서는 포크를 만든 후 중단한 부분을 선택합니다. 우리는 포크의 로컬 복사본을 만드는 것을 보았습니다. 우리는 그것을 복제해야 할 것입니다.
포크를 복제하려면 먼저 포크의 URL을 복사합니다. URL은 아래 그림과 같이 코드
탭 아래에 있습니다.
URL을 복사하고 Git Bash를 시작합니다. 아래 그림과 같이 리포지토리를 복제할 폴더를 만듭니다.
$ mkdir myproject
아래와 같이 폴더를 엽니다.
$ cd myproject
아래 그림과 같이 git clone
명령을 사용하여 리포지토리를 복제합니다.
$ git clone https://github.com/User/Repository.git
결과:
복제는 리포지토리 크기와 인터넷 연결에 따라 다소 시간이 걸릴 수 있습니다.
다음은 둘 사이의 차이점을 요약한 표입니다.
포크 | 클론 |
---|---|
그것은 개념이다 | 과정이다 |
명령 사용을 포함하지 않음 | git clone 명령 사용을 포함합니다. |
우리는 GitHub 계정을 포크합니다. | 우리는 Git을 사용하여 복제합니다. |
풀 리퀘스트를 통해 포크에 대한 변경 사항을 원본 리포지토리와 병합할 수 있습니다. | 소유자이거나 승인된 기여자인 경우에만 복제된 리포지토리에 대한 변경 사항을 원본 리포지토리와 병합할 수 있습니다. |
결론적으로 GitHub에서 호스팅되는 공개 리포지토리와 상호 작용할 때 분기 개념과 복제 프로세스를 보게 될 것입니다. 이 둘은 다르게 작동하며 사용 사례가 다릅니다.
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