Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

gugaga

Git 브랜치 활용 전략 본문

모비우스 부트캠프

Git 브랜치 활용 전략

ggugga 2025. 10. 12. 23:24

브랜치가 필요한  이유

:소프트웨어는 지속적으로 변경되므로 사용 중인 제품에서 문제점을 해결하기 위해

 

개인/조직마다 브랜치 활용 방식은 다르다!

 

브랜치 활용 전략은 소스코드의 효율적인 관리를 위해

'프로젝트의 모든 리스크를 최소화하는 방향'으로 일관되고 생산적인 방식으로

조직에 맞게 프로세스화 시켜야합니다!

- feature 별

- 개발자별

- 스프린트 주기별

- 사내 검증 단계별

-브랜치 활동 전략 모델(방법론) : GitFlow 

 

GitFlow 모델이란?

아래의 브랜치를 활용하여 변경점을 관리하는  모델

- master branch

- develop branch

- feature branch

- release branch

- hotfix branch

 

GitFlow 모델 - master branch

= 실제 고객에게 릴리즈되는 브랜치(production)

= 모든 변경사항은 결국 master로 최종 반영되어야 함

 

GitFlow 모델 - develop branch

= 실제 개발의 중심이 되는 브랜치

= 즉, 모든 기느잉 추가되고 버그가 수정되고, 고객에게 배포 가능한 수준이 되면 develop의  내용은 master에 최종 반영되어야 함.

= 다음 배포할 기능 개발하는 브랜치

 

GitFlow 모델 - feature branch

= 기능을 개발하는 브랜치

= develop 브랜치로부터 분기되어 사용됨

(feature 브랜치의  단위? 기능, 스프린트 주기 등)

= 기능 개발이 완료되거나 스프린트 주기가 종료되면 develop 브랜치로 내용 merge 후 브랜치 삭제됨.

 

GitFlow 모델 - release branch

= 배포를 준비(검증, 이슈 수정 등)하는 브랜치

= 배포 가능한 상태가 되면 master 브랜치로  병합

= release 브랜치에서 기능 점검시 발견한 이슈에 대한 수정사항은 반드시 develop에 병합해야 함.

= 배포 준비가 완료되면, 최종 master로 병합하고 tag를 명시해야 함 

+ develop 중간중간에 release 해주는  것임

 

GitFlow 모델 - hotfixs branch

= 배포한 버전에서 긴급하게 수정이  필요한 장애 및 버그 발생시 대응하는 브랜치

= hotfixs는 master로 부터 분기되며, 이슈가 수정되면 수정사항은 master, develop 브랜치에 최종 반영되어야 함

 

GitFlow 실습

 

다 default 옵션으로 진행하기 때문에 모두 enter 눌러주시면 됩니다.

develop이라는 브랜치가 생성되었으며 develop에 체크아웃된것을 확인할 수 있었습니다.

 

[실습] - 기능 개발

$ git flow featuer start [개발할 기능명]

$ git flow featuer start login

$ git flow feature start login 앞서 해준 명령어 와 반대로

'login' 기능을 완성하고, 해당 feature/login 브랜치에서의 모든 변경사항을  develop브랜치로 병합한 후, feature/login 브랜치를 삭제하는명령어가 아래의 'git flow feature finish login' 명령어입니다.

$ git flow release start [버전명]

$ git flow release start 1.0

아까 작성했던 MainService.java 파일을 열어서 2번째 줄을 추가하고 저장해줍니다.

$ git flow release finish [버전명]

$ git flow release finish 1.0

merge 커밋이 나오는데 (release -> master) 해당 내용을 저장w 나가기q 해주기

complete release 1.0이라고 저장해주고 저장w 나가기q 해주기

(release->develop) 머지 커밋이 나오는데 해당 내용을 저장w 나가기q 해주기

release도 삭제된것을 확인할 수 있었음

$ git log --oneline

프로젝트의 모든 커밋 이력각 커밋당 한 줄로 압축한것을 보여

$  git show 1.0

태그가 가리키는 커밋의 메타데이터(작성자, 날짜, 커밋 메시지)와 변경된 파일들의 내용(diff)을 보여줌

 

[실습] - GitFlow 긴급 이슈 발생시

$ git flow hotfix start issue#1

위 처럼 코드를 추가해주고 커밋 메시지까지 작성해준 다음

$ git flow hotfix finish issue#1 이 명령어를 작성해주면 아래와 같이 머지 커밋이 뜹니다.

건들이지 않고 저장 나가기

complete hotfix#1을 작성 후 저장 나가기

저장 나가기 (실습 끝)

'모비우스 부트캠프' 카테고리의 다른 글

자동차 내장  (0) 2025.11.16
현가시스템  (0) 2025.10.26
Git응용 - Git 브랜치의 이해  (1) 2025.10.11
자동차 조향 장치  (0) 2025.10.10
자동차 등화 시스템  (0) 2025.10.10