GitHub 각 프로젝트 페이지에서 About 부분 아래 Fork라는 텍스트버튼을 찾아볼 수 있다.
포크? 찔러본다고? 그게 뭔소리야 이 프로젝트가 마음에 든다는 건가? 생각했었는데, 정확히 무얼 의미하는지 한번 찾아보기로 했다.
구글에 What is forking in programming? 이라고 검색하면 위키피디아에서는 이렇게 설명한다.
In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software.
Forking이란 하나의 패키지로 부터 소스코드를 받아와 기존의 것과 분리되는 독립적인 새로운 패키지를 시작하는 것이다
단, 주의할 점은 forking하고자하는 프로젝트의 license를 확인할 것!
그렇다면 과연 브랜치를 새로 따는 것과 포크하는 것의 차이는 무엇일까?
내가 이해한 바로는 브랜치를 새로 따는 것은 오리지널 프로젝트에서 새로운 갈래로 나와 거기서부터 개발하고 필요시 메인 브랜치로 PR, merge 하는 것이다. Forking은 오리지널 프로젝트를 그대로 가져와 거기서부터 새롭게 개발을 시작하는 것으로 오리지널 프로젝트와 분리되는 것이다.
오리지널 프로젝트의 소스코드를 활용해 무엇을 하고싶은지에 따라 branch와 fork 중 더 합당한 것을 선택하면 된다.