포크와 브랜치의 차이
git
포크와 브랜치의 차이
과제를 제출할 때 보통 원본 레포지토리를 포크해 오고, 그 포크한 저장소에서 브랜치를 따서 작업한 뒤 마무리되면 원본 레포지토리에 PR을 보낸다. 그런데 문득 "실제 서비스용 메인 브랜치만 두고 필요할 때마다 브랜치를 따서 작업 후 합치면 안 되는 걸까?"라는 의문이 들어 포크와 브랜치의 차이를 정리해 보았다.
브랜치(Branch)
브랜치는 같은 저장소 안에서 독립적인 작업 공간을 나누는 기능이다.
- 하나의 집 안에서 방을 나눠 작업하는 것과 비슷하다.
- 메인 브랜치를 그대로 두고 기능 추가나 버그 수정을 할 때 브랜치를 따서 작업한 뒤 다시 합친다.
- 팀 내부 협업에서는 브랜치만으로도 충분하다.
포크(Fork)
포크는 저장소 자체를 복제해서 새로운 저장소를 만드는 기능이다.
- 집 전체를 복제해 독립적으로 작업하는 것과 같다.
- 원본 저장소에 직접 쓰기 권한이 없을 때, 내 계정으로 가져와 자유롭게 수정하고 관리할 수 있다.
- 주로 오픈소스 기여에서 사용된다.
정리
- 브랜치: 같은 집 안에서 방을 나눠 작업
- 포크: 집 전체를 복제해 독립적으로 작업
팀 프로젝트처럼 같은 저장소에서 협업할 때는 브랜치를 사용하면 되고, 원본 저장소에 권한이 없는 오픈소스 기여 상황에서는 포크가 필요하다.