리포지토리 포크는 리포지토리 복사와 유사하지만 두 가지 주요 차이점이 있습니다.
-
끌어오기 요청을 사용하여 사용자 소유 포크에서 업스트림 리포지토리라고도 하는 GitHub 인스턴스의 원래 리포지토리로 변경 내용을 제안할 수 있습니다.
-
업스트림 리포지토리와 포크를 동기화하여 업스트림 리포지토리에서 로컬 포크로 변경 내용을 가져올 수 있습니다.
리포지토리에 대한 설정과 엔터프라이즈 정책에서 포크를 허용하는 경우 리포지토리 생성 권한이 있는 your GitHub Enterprise Server instance의 개인 계정 또는 조직에 프라이빗 또는 내부 리포지토리를 포크할 수 있습니다.
GitHub Desktop을 사용하여 리포지토리를 포크할 수 있습니다. 자세한 내용은 “GitHub Desktop에서 리포지토리 복제 및 포크”를 참조하세요.
포크를 삭제해도 원래 업스트림 리포지토리는 삭제되지 않습니다. 원본에 영향을 주지 않고 포크를 원하는 대로 변경할 수 있습니다(협력자 추가, 파일 이름 변경, GitHub Pages 페이지 생성).
오픈 소스 프로젝트에서 포크는 업스트림 리포지토리로 다시 제공되기 전에 아이디어 또는 변경 내용을 반복하는 데 종종 사용됩니다. 사용자 소유의 포크를 변경하고 작업을 업스트림 리포지토리와 비교하는 끌어오기 요청을 열면, 업스트림 리포지토리에 대한 푸시 액세스 권한이 있는 모든 사용자에게 끌어오기 요청 분기에 변경 내용을 푸시할 수 있는 권한을 부여할 수 있습니다(분기 삭제 포함). 이렇게 하면 리포지토리 유지 관리자가 병합하기 전에 사용자 소유 포크에서 끌어오기 요청 분기로 로컬에서 커밋하거나 테스트를 실행할 수 있도록 하여 협업 속도가 향상됩니다. 조직에서 소유한 포크에는 푸시 권한을 부여할 수 없습니다.
프라이빗 포크는 업스트림 또는 부모 리포지토리의 사용 권한 구조를 상속합니다. 이를 통해 프라이빗 리포지토리 소유자가 코드에 대한 제어를 유지할 수 있습니다. 예를 들어 업스트림 리포지토리가 프라이빗 리포지토리이고 팀에 대한 읽기/쓰기 액세스 권한을 제공하는 경우 동일한 팀은 프라이빗 업스트림 리포지토리의 모든 포크에 대한 읽기/쓰기 액세스 권한을 갖습니다. 프라이빗 포크에서는 개별 사용 권한이 아닌 팀 권한만 상속됩니다.
기존 리포지토리의 콘텐츠에서 새 리포지토리를 만들되 나중에 변경 내용을 업스트림에 병합하지 않으려는 경우, 리포지토리를 복제하거나 리포지토리가 템플릿인 경우 리포지토리를 템플릿으로 사용할 수 있습니다. 자세한 내용은 “리포지토리 복제” 및 “템플릿에서 리포지토리 만들기”를 참조하세요.