˙Git-Flow
- master, develop, feature, release, hotfix 제안
- master와 develop만으로도 간단한 형상관리 가능하다.
- develop에서 개발하고 완료된 소스를 master에 반영하는 구조이다.
- master : 운영 소스를 버전별로 관리하는 안정화된 branch
- develop : 실제 개발 소스가 운영되는 비교적 덜 안정화된 branch
˙Branch 1 : 기능 개발(feature)
- 새로운 기능을 개발하기 위한 기능 전용 branch
- develop에서 분기되어 개발을 진행하고, 개발 완료 후에는 다시 devleop으로 merge 한다.
- 기능 전용(기능 단위) branch이기 때문에, 기능의 개수만큼 존재할 수도 있다.
- 일반적인 개발처럼 develop에서 진행해도 되지만, 대규모 개발일 경우 나누어 진행하는 것이 좋다.
- 또한, 기능을 기준으로 나누게 되면 자연스레 기능 버전 관리나 모듈 관리가 쉬워진다.
˙Branch 2 : 릴리즈(release)
- 기능 단위 개발을 완료하고 난 후 안정화를 위한 branch
- 다음 배포 버전에 포함될 기능이 모두 merge 된 시점의 develop branch에서 분기 처리한다.
- 사전 안정화 작업이 모두 종료되면, develop과 master에 merge 되어 반영된다.
- release branch를 사용하게 되면, 안정화 작업이 진행되면서도 지속적인 개발 가능하다.
˙Branch 3 : 핫픽스(hotfix)
- 이미 release까지 완료된 소스에서 오류(버그)가 발견될 경우에 사용하는 branch
- hotfix branch는 master branch에서 분기되어 master와 develop branch에 merge 한다.
- 또한, patch 버전이 변경되는 상황에 적합한 용도의 branch
- 별도로, 버그 없이 프로그램을 만들 수 있는 환경이 된다면 별도의 hotfix branch는 불필요하다.
˙Result : Git-Branch
- 모든 개발 과정은 Git-Flow에 따라 진행하는 것을 권장하므로, 개발은 develop branch를 기반으로 진행한다.
- 새로운 기능에 대한 개발을 진행할 경우에는 feature branch를 분기하여 진행하고, 완료된 후에는 develop에 merge 한다.
- 운영 또는 개발에 대한 배포를 위하여 안정화가 필요한 경우에는 release branch를 분기하여 진행한다.
- 이후의 수정애 대하여는 bug fix로 제한하고, 안정화가 완료된 후에는 release branch를 master branch에 merge 후에 배포한다.
- release branch에서 수정된 버그들은 develop branch에 다시 merge 한다.
- 배포 버전에 대하여 문제 발생 시에는 hotfix branch 분기를 사용하여 문제를 수정한다.
- 수정 후 master branch에 merge 하여 배포하고 develop branch에도 반영한다.
'끄적대기' 카테고리의 다른 글
HTTP REST API (0) | 2022.03.24 |
---|---|
GIT을 다루는 용어 (0) | 2022.03.24 |
소스 형상관리 GIT (0) | 2022.03.24 |
Transaction(트랜잭션) : BEGIN, COMMIT, ROLLBACK (0) | 2022.03.24 |
동시성(Concurrency)과 병렬성(Parallelism) (0) | 2022.03.24 |