지금껏 git branch의 전략으로
main, dev, feat만을 사용해왔으나, 개발 및 협업을 진행해오며 hotfix
, chore
등 기타 브랜치 전략 도입의 필요성을 체감하는 중이다.
현재 ganoverflow
프로젝트에서 feat, dev, main만 사용했으나, 이제부터는 hotfix
,chore
를 추가적으로 사용할 것 이며(사실 이미 도입했다) 컨벤션은 아래와 같이 정립하고 수행하고자 한다.
참고로 chore는 package, 시스템 관리 등 코드레벨에서는 다소 작은 변경사항을 반영하는 branch 전략이라고 학습했으며, 이는 dev를 반드시 통과하도록 할 것이다.
dev
<- feat
dev
<- chore
main
<-(by PR) dev
main
<-(by PR) hotfix
여기서 주목해 보아야 할 것이 있다. hotfix만 유일하게 dev를 거치지 않고 main에 merge되는데 이것에 대한 추가적인 의문과 고민이 있다.
지금까지는 반드시 모든 branch가 dev를 거쳐 main에 병합(수렴)되었으나, hotfix는 유일하게 dev에 먼저 반영되지 않은 채 main으로 선반영 된다. 이에 따라, hotfix <-> dev
간 commits 확산을 수행해주어야 하는데, 이런 확산 방법에 대한 공부가 필요해보인다.
자동으로, 규칙적으로, 필수적으로 확산시킬 수 있다면 좋겠으나, 내 부족한 지식선에서는 이것을 컨벤션으로 해결하여 각 개발자의 영역으로 남겨놓는것이 일반적이라고 알고 있어서 어떤 방식을 사용해야할 지 추가 고민이 필요하다.