티스토리 뷰

저번 시간에 스프링 부트 프로젝트를 git과 연동하여 github에 저장하였다.

(2019/04/29 - [웹 개발/SpringBoot] - 소스트리를 이용하여 github에 스프링부트 프로젝트 올리기)

 

이번에는 저번시간에 만든 프로젝트에 git flow 브랜치 전략을 적용해 보려고 한다.

 

 

 

Git-Flow


Git-Flow는 소프트웨어의 소스코드를 관리하고 출시하기 위한 브랜치 관리 전략 "branch management strategy" 이다.

프로젝트를 진행하면서 수많은 브랜치를 생성하고 병합 하는데 이러한 수많은 브랜칭 작업을 규격화하여 브랜치를 쉽게 다룰 수 있도록 해 주는 규칙, 전략이다.

 

 

Git-Flow의 5가지 branch


1. master

- master 브랜치는 모든 테스트가 끝나고 배포될 버전이 commit 되는 branch 이다.

- 배포판

- 배포 버전별로 commit 이 됨

 

2. develop

- 실제 개발 내용들이 commit 되는 branch 이다.

- 여러 사람들이 구현한 기능들을 merge 한 branch 이다.

- 큰 뼈대의 작업들이 진행된다.

 

3. feature

- 자신이 구현한 기능들이 commit 되는 branch 이다.

- 특정 기능을 개발하는 branch 이다.

- 특정한 기능들의 구현이 진행된다.

 

4. release

- master로 merge 하는 예비 master 라고 할 수 있는 branch 이다.

- 거의 완성된 작업의 마무리 수정작업이 이루어진다.

 

5. hotfix

- 갑자기 오류가 발생해서 디버그 해야하는 경우와 같이 긴급하게 코드를 수정해야 할 때 사용하는 branch 이다.

- 긴급한 오류의 수정이 이루어진다.

 

 

 

Git-flow 진행 순서


프로젝트 시작 (master 생성) -> 개발 시작 (develop 생성) -> 큰 뼈대 작업 진행 (develop 에서 작업)

-> 특정 기능 필요 시 feature 생성하고 작업 -> 기능 구현이 완료되면 develop으로 merge

-> 배포 버전의 작업이 완료되면 release 생성 -> release 에서 오류 수정 작업 진행

-> 작업이 완전히 끝났으면 release 를 master 와 develop 으로 merge -> tag 로 master 의 버전 확인

 

 

 

Git-flow 적용


위와 같이 오른쪽 상단의 Git-flow 버튼을 클릭하여 develop 브랜치를 새로 생성한다.

develop 브랜치에서 Gradle에 dependency를 추가하고 application.yml 파일에서 datasource, jpa 설정을 할 것이다.

 

 

Gradle에 mariadb dependency 추가

 

 

application.yml 에서 datasource, jpa 설정

 

 

 

Gradle과 application.yml에 내용이 추가되었으므로 위와 같이 Uncommitted changes 가 생겨난다.

 

 

 

따라서 변화된 부분을 develop branch 에서 커밋한다.

 

 

그리고 커밋한 develop branch 를 git hub에 push 시킨다.

 

 

github에 commit 한 결과가 정상적으로 push 되었는지 확인한다.

 

 

참고자료


https://boxfoxs.tistory.com/347