| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 개발 공부
- 비전공자
- useRef
- react
- 이벤트
- useMemo
- MegabyteSchool
- 모던 딥 다이브 자바스크립트
- Github
- 코딩테스트
- 공식문서
- 개발자취업부트캠프
- GIT
- 내일배움카드
- 프로그래머스
- 자바스크립트
- 알고리즘
- 리액트
- 모던 자바스크립트 딥 다이브
- 입문
- JavaScript
- styled-components
- 국비지원교육
- 메가바이트스쿨
- CSS
- 자료구조
- 패스트캠퍼스
- 프론트엔드
- next.js
- TypeScript
Archives
- Today
- Total
개발 기록 남기기✍️
[Git] Git-flow란? / 다루는 방법 본문
Git-flow
Vincent Driessen의 브랜칭 모델. Git으로 개발할 때 거의 표준과 같이 사용되는 방법론.
git-flow cheatsheet
danielkummer.github.io
Git-flow의 브랜치
Git-flow에는 5가지 종류의 브랜치가 존재한다. 항상 유지되는 메인 브랜치들(main, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있다.
- main : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
- release : 이번 출시 버전을 준비하는 브랜치
- hotfix : 출시 버전에서 발생한 버그를 수정하는 브랜치

Git-flow의 개발 흐름
- 일단 main 브랜치에서 시작한다.
- 동일한 브랜치를 develop에도 생성한다. 개발자들은 develop 브랜치에서 개발을 진행한다.
- 개발을 진행하다가 회원가입, 로그인 등의 기능 구현이 필요할 경우 작업 단위마다 feature 브랜치를 생성해서 기능을 구현한다.
- 완료된 feature 브랜치는 검토를 거쳐 다시 develop 브랜치에 합친다.
- 모든 기능이 완료되면 develop 브랜치를 release 브랜치로 만든다. 그래고 QA(품질검사)를 하면서 보완점을 보완하고 버그를 픽스한다.
- QA 통과하면 release 브랜치를 main 브랜치와 develop 브랜치로 보낸다. main 브랜치에서 버전 추가를 위해 태그를 하나 생성하고 배포를 한다.
- 배포를 했는데 미처 발견하지 못한 버그가 있을 경우 hotfix 브랜치를 만들어 긴급 수정 후 태그를 생성하고 바로 수정 배포를 한다.
Getting started
- 초기화
- 기존 git 저장소 내에서 초기화하는 것으로 git-flow의 사용을 시작한다.
$ git flow init
- 새 기능 시작하기
- 새 기능의 개발은 develop 브랜치에서 시작한다.
- develop에 기반한 새 기능 브랜치를 생성하고 자동으로 그 브랜치로 전환한다.
$ git flow feature start {feature-name}
- 기능 완료
- 기능 브랜치를 develop 브랜치에 merge한다.
- 기능 브랜치를 삭제한 뒤, develop 브랜치로 전환한다.
$ git flow feature finish {feature-name}
- publish 4-1. 기능 게시
- 기능을 공동으로 개발할 시, 원격 서버에 게시하여 다른 사용자들도 사용할 수 있게 한다.
$ git flow feature publish {feature-name}
4-2. 게시된 기능 가져오기
- 다른 사용자가 게시한 기능을 가져온다.
$ git flow feature pull origin {feature-name}
- release 시작
- release를 시작하려면 git-flow의 release 명령을 사용한다.
- develop 브랜치로부터 release 브랜치를 생성한다.
$ git flow release start [version]
- release 완료
- release 브랜치를 main 브랜치에 merge
- release를 release 이름으로 tag 생성
- release를 develop 브랜치로 재병합(back-merge)
- release 브랜치 삭제
$ git flow release finish [version]
- 원격 저장소와 동기화
$ git push -u origin develop # -u는 브랜치 최초 생성 시에 사용
$ git push origin main
$ git push --tags
'기초 지식 > git' 카테고리의 다른 글
| [Git] fork 해온 repository 잔디 심는 방법 (0) | 2023.01.10 |
|---|---|
| Git 기초 (4) - GitHub 사용하기 (0) | 2022.12.09 |
| Git 기초 (3) - 차원 넘나들기 (0) | 2022.12.09 |
| Git 기초 (2) - Git 시간 여행하기 (0) | 2022.12.09 |
| Git 기초 (1) - Git 시작하기 (0) | 2022.12.09 |