본문 바로가기

끄적대기

GIT을 체계적으로 Git-Flow

728x90
반응형

˙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에도 반영한다.

728x90
반응형

'끄적대기' 카테고리의 다른 글

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