티스토리 뷰
프로젝트 때 사용한 branch 전략
- 톡딱 팀 서버파트에서 사용한 branch 전략은 잘 알려진 git flow보다는 간략하게 구성했습니다.
- master : 제품으로 출시될 수 있는 브랜치
- develop : 다음 출시 버전을 개발하는 브랜치
- feature : 기능을 개발하는 브랜치
각자 feature 브랜치를 추가하여 기능 개발 후 develop에서 merge하여 push하는 방식으로 진행했습니다.
간략하게 구성한 이유는 저 포함하여 팀원 모두가 협업은 처음이었기 때문입니다.
pull request 사용에 미숙한 점도 있었고 그로 인한 충돌이 개발 시간을 많이 잡아먹을 것으로 판단하여 간략하게 구성해봤습니다.
문제점 : 커밋 그래프의 복잡함
- rebase를 해야 커밋 그래프를 단순화시킬 수 있다!
- rebase vs merge
우아한형제들에서 사용하는 git flow와 차이점
Upstream Repository를 Fork한 Orgin Repository가 추가되어있습니다.
Orgin Repository에서 pull request를 생성하고 코드리뷰를 거친 후 merge를 한다고 합니다.
이유는 다음과 같습니다.
- 모두가 공유하는 Repository에 실험하기에는 위험이 있다고 판단
- Fork한 Repository를 두면 부담없이 원하는 실험들을 해볼 수 있다고 판단
release와 hotfix 브랜치가 추가됩니다.
- release : 이번 출시 버전을 준비하는 브랜치
hotfix : 출시 버전에서 발생한 버그를 수정하는 브랜치
일반적인 개발 흐름
처음에는 master와 develop 브랜치가 존재합니다.
- develop 브랜치 : master에서부터 시작된 브랜치
develop 브랜치에서는 상시로 버그를 수정한 커밋들이 추가됩니다.
새로운 기능 추가 작업이 있는 경우 develop 브랜치에서 feature 브랜치를 생성합니다.
- feature 브랜치 : develop에서부터 시작된 브랜치
기능 추가 작업이 완료되었다면 feature 브랜치는 develop 브랜치로 merge됩니다.
develop에 이번 버전에 포함되는 모든 기능이 merge 되었다면 QA를 하기 위해 develop 브랜치서부터 release 브랜치를 생성합니다.
QA를 진행하면서 발생한 버그들은 release 브랜치에 수정됩니다.
QA를 무사히 통과했다면 release 브랜치를 master와 develop 브랜치로 merge합니다.
마지막으로 출시된 master 브랜치에서 버전 태그를 추가합니다.
팀원들과의 작업 간 약속은 다음과 같습니다.
- 작업을 시작하기 전에 JIRA 티켓을 생성합니다.
- 하나의 티켓은 되도록 하나의 커밋으로 합니다.
- 커밋 그래프는 최대한 단순하게 가져갑니다.
- 서로 공유하는 브랜치의 커밋 그래프는 함부로 변경하지 않습니다.
- 리뷰어에게 꼭 리뷰를 받습니다.
- 자신의 Pull Request는 스스로 merge 합니다.
출처
'개발 노트' 카테고리의 다른 글
JpaRepository 파라미터 Mocking 시 NullPointerException (0) | 2023.01.09 |
---|---|
쿼리 스트링 만들기 (0) | 2023.01.02 |
이 로직은 도메인 영역일까? 애플리케이션 영역일까? (0) | 2022.08.07 |
DTO 엔티티 validation과 List<DTO> (0) | 2022.05.28 |
python으로 해당 월에 몇 주차인지 구하기 (2) | 2022.01.09 |
- Total
- Today
- Yesterday
- 코테
- MSA
- Effective Java
- kotest
- BAEKJOON
- Algorithm
- Java
- programmers
- 디자인 패턴
- 이팩티브 자바
- 프로그래머스
- kkoon9
- 객체지향
- C++
- 알고리즘
- BOJ
- Olympiad
- 이펙티브 자바
- Kotlin
- Spring Boot
- node.js
- AWS
- 클린 아키텍처
- JPA
- 테라폼
- 정규표현식
- 디자인패턴
- Spring
- 백준
- 클린 코드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |