📅 2023. 01. 05
2-3명의 개발자가 있는 작은 팀에서는 Fork 없이 Clone을 떠서 작업해도 문제가 없다. 문제는 개발자가 많아졌을 때다. 메인 레파지토리가 수 백개의 브랜치로 뒤덮였을 때 몇몇 브랜치는 오래되거나 잊혀지거나 병합되지 않은 채로 갈 길을 잃고 만다. 이런 낡고 잊혀진 브랜치들은 git push
의 퍼포먼스에 영향을 주기도 한다 (링크).
또 누군가 같이 쓰는 브랜치에 force-push를 하는 경우 문제가 발생하기도 한다.
레포를 Fork하면 어떤 브랜치가 작업 중이고 어떤 브랜치가 완료 됐는지 쉽게 추적이 가능하다. 이로써 메인 레포를 더 깨끗하게 유지할 수 있다.
그러나 메인 레포에 테스트 인프라 환경이 설정되어있는 경우 브랜치를 업스트림으로 푸시하지 않는 한 분기된 레포의 변경 사항을 테스트하기가 더 어려울 수 있다. Branching과 Forking이 언제가 최선인지 파악하는 것은 까다로울 수 있지만, 일반적으로 팀이 4명 이상이고 수정 사항과 기능이 많을 때는 Forking이 가장 좋은 옵션이다.