포크 (Fork)
이 페이지는 AI 문맥에서 자주 쓰이는 포크 (Fork)의 뜻과 쓰임을 중급 난이도 기준으로 정리한 AI 용어사전 항목입니다. 정의와 맥락, 관련 용어 5개 순서로 묶었으니, 아래 설명을 먼저 읽고 연결된 개념과 글까지 이어서 보면 이해가 빨라집니다.
포크(Fork)는 소프트웨어 저장소를 별도로 복사해 원본과 구분되는 개발을 이어가는 방식입니다. GitHub에서는 원본 저장소와 연결된 새 저장소를 만들어 변경을 관리합니다. 같은 저장소 안의 브랜치나 컴퓨터에 내려받는 클론과 범위가 다릅니다. 운영체제에서 프로세스를 만드는 fork()와는 다른 개발 협업 용어입니다.
원본에서 갈라지는 저장소
GitHub의 포크 참조 문서는 포크를 원본 저장소와 코드 및 공개 범위를 공유하는 새 저장소로 설명합니다. 포크를 만든 사람은 자신의 저장소에서 변경을 준비할 수 있습니다. 원본에 바로 쓸 권한이 없어도 복사본에서 수정안을 만들고, 원본 프로젝트에 변경을 받아 달라고 제안하는 협업에 쓰입니다. 포크 생성과 원본 수정 권한 부여는 서로 다른 일입니다.
복사 뒤에는 원본과 포크의 변경 이력이 각기 진행됩니다. 원본 개발자가 오류를 고쳤다고 포크의 모든 브랜치에 그 수정이 자동으로 들어가는 것은 아닙니다. 포크에서 만든 기능도 원본이 검토하고 받아들이는 별도 과정이 필요합니다. 두 저장소에 같은 파일이 있다는 사실과 같은 커밋을 가리킨다는 사실을 나눠 보면 어느 쪽에 어떤 변경이 있는지 이해하기 쉽습니다.
원본에 제안할 수정만 잠시 보관하는 포크도 있고, 다른 목적의 제품으로 계속 발전시키는 포크도 있습니다. 버그 하나를 수정할 때는 원본에 제출할 변경 범위를 작게 유지하는 편이 검토에 도움이 됩니다. 별도 기능을 오래 유지한다면 원본의 보안 수정과 자신의 변경이 만나는 지점을 관리하게 됩니다. 어느 방식이든 복사 뒤의 유지보수 책임과 협업 목표는 따로 정합니다.
브랜치·클론·풀 리퀘스트의 역할
브랜치는 한 저장소 안에서 변경 이력을 가리키는 갈래입니다. 포크는 별도 저장소이므로 그 안에서도 여러 브랜치를 만들 수 있습니다. 원본의 접근 정책을 그대로 따르는 브랜치와 자신의 저장소에서 수정하는 포크는 작업 권한의 경계가 다릅니다. 같은 팀이 공통 저장소에 브랜치를 만드는 흐름과 외부 기여자가 포크를 만드는 흐름을 같은 절차로 취급하면 권한 오류를 오해하기 쉽습니다.
클론은 저장소의 이력을 로컬 컴퓨터로 가져와 작업할 복사본을 만드는 일입니다. 원본을 직접 클론할 수도 있고 자신의 포크를 클론할 수도 있습니다. origin이라는 원격 이름만으로 어느 저장소를 뜻하는지는 알 수 없습니다. 포크를 클론했다면 보통 자신의 포크를 가리키지만, 실제 대상은 저장된 원격 URL로 결정됩니다. 원본을 가리키는 원격에는 흔히 upstream이라는 이름을 붙입니다.
풀 리퀘스트는 두 브랜치의 변경 차이를 검토하고 병합하도록 제안하는 단위입니다. 포크 자체를 만들었다고 원본에 제안이 제출되지는 않습니다. 어느 저장소의 어느 브랜치를 출발점과 도착점으로 삼았는지에 따라 제안하는 차이가 달라집니다. 원본에 필요한 수정 외에 개인 설정이나 실험 커밋이 들어갔다면 검토 대상에도 함께 나타날 수 있습니다.
원본과 동기화할 때의 조건
GitHub의 포크 동기화 안내는 웹 화면이나 명령줄에서 원본의 변경을 포크로 가져오는 방법을 설명합니다. 명령줄 방식에서는 원본 원격의 변경을 가져온 뒤 대상 브랜치에 병합합니다. 포크에서 같은 부분을 수정했다면 충돌을 해결하는 과정이 필요합니다. 원본의 최신 커밋을 받는 작업과 자신의 변경을 원본에 보내는 작업은 방향이 반대입니다.
동기화가 끝났다는 말도 어느 브랜치를 갱신했는지에 따라 범위가 달라집니다. 기본 브랜치만 갱신하고 작업 브랜치는 이전 상태로 남겨 둘 수 있습니다. 로컬에서 병합을 마친 상태와 GitHub의 포크에 그 커밋을 푸시한 상태도 별개입니다. 협업 기록에는 원본, 포크, 로컬 작업 브랜치가 각각 가리키는 변경을 남기면 검토 대상을 찾기 쉽습니다.
2026년 10월 11일 확인한 GitHub 문서는 포크의 공개 범위와 권한이 원본 및 저장소 정책과 연결된다고 설명합니다. 코드를 볼 수 있거나 포크 버튼이 있다는 사실만으로 임의의 재배포 조건까지 정해지지는 않습니다. 다른 프로젝트로 배포할 때 적용할 이용 조건은 저장소의 라이선스와 함께 확인합니다. 원본의 업데이트를 계속 받을지, 어느 시점부터 독자적으로 유지할지도 운영 계획에 포함됩니다.
관련 용어
포크 (Fork)와 함께 자주 언급되는 개념들입니다. 비슷한 말처럼 보여도 역할과 쓰임은 다를 수 있습니다.
