Ops, Infra, etc/🐙 Git
branch 전략 : GitHub Flow (변형)
DarrenKwonDev
2020. 2. 29. 17:15
협업을 함에 있어 branch 전략은 여러가지가 존재한다. git flow, github flow etc...
전략을 완벽히 따르기 보다는 상황에 따라 유동적으로 전략을 세우는 것이 좋다. 중요한 것은 전략을 세워놓고 그것을 지켜서 충돌을 최소화하고 원활한 협업 환경을 만드는 것이다.
Zerocho가 사용하는 branch 전략은 github flow를 변형한 형태인데 다음과 같은 방식으로 이루어진다고 한다.
1. initial commit를 master에 push한 후 바로 dev branch를 만듭니다.
기능별 혹은 개발자별로 각 branch를 만듭니다. 각자 개발은 진행합니다. 개발 도중 branch가 너무 꼬였다면 새 branch를 파서 개발해도 됩니다. 핵심은 master에는 conflict가 없는 깔끔한, 병합된 코드만 올리는 것입니다.
2. 정기적으로 dev branch에 종합합니다.
곧바로 master에 병합하는 것이 아니라 branch를 종합하는 branch를 만든 후 병합합니다.
여기서 conflict를 해결한 뒤 master에 병합합니다. 다시 한 번 강조하자면 master에는 깔끔한 코드만 commit합니다.
3. 정기 회의에서 병합한 master를 기반으로 다시 1번을 수행합니다.
master에는 합의된 깔끔한 코드가 commit되었으므로 이 master를 기반으로 다시 새 branch를 만듭니다.
4. 1~3의 작업을 반복합니다.
5. 프로젝트를 완성하면 master에 최종 merge한 후 배포합니다.
물론 이후 기능을 추가할 때도 master를 기반으로 새 branch를 만들면 됩니다.
6. master에서 만약 버그가 발견되었을 경우 hot fix branch를 만든 후 해결 뒤에 다시 merge합니다.
master를 곧장 고치는 것이 아니라 branch를 만든 후 merge합니다.
급하게 버그를 고치는 것을 hotfix라고 합니다. hotfix branch는 버그를 해결한 뒤 다시 사용하지 않습니다.