분산 버전 컨트롤 소프트웨어인 깃(Git)을 기반으로 소스 코드를 저장하고 협업 지원 기능(Merge, PullRequest) 기능들을 지원하는 마이크로소프트의 웹서비스입니다. 2020년 현재 가장 인기 있는 소스 코드 호스팅 서비스이자 소셜 코딩 플랫폼입니다.
git flow 구조도
Issue란 프로젝트의 기능들을 이슈라 볼 수 있습니다. 새로 추가될 기능, 개선해야 할 기능, 버그 등등이 이슈입니다.
branch란 브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다. 또한 이렇게 만들어진 브랜치는 다른 브랜치와 병합(Merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있습니다.
Issue 기반 branch 생성 branch 네이밍을 통해서 작업의 의도를 갖게 하는 것은 한계가 있습니다. Github Issue는 각각의 유니크한 값인 Issue Number를 갖습니다. 이 숫자를 기반으로 branch를 이름을 갖게 하여 해당 branch의 명확한 작업 의도를 갖게 할 수 있습니다.
6번 Issue기반 branch 생성 예시
결론
Issue 단위 branch를 생성해서 대규모 프로젝트 협업 시에 명확한 작업 의도를 공유하자.