1️⃣ TL;DR: git flow 레퍼런스 링크들
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html → git flow cheetsheet
https://jinwoo1990.github.io/git/git-flow-summary/ → git flow 사용법 요약 / 팁
☕ 설 치 ☕
MAC OS
brew install git-flow-avh
Linux
sudo apt-get install git-flow
Windows
get -q -O - --no-check-certificate <https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh> install stable | bash
2️⃣ Git Flow 에서의
브랜치 종류
- master: 제품으로 출시될 수 있는 브랜치
- develop: 다음 출시 버전을 개발하는 브랜치
- feature: 기능을 개발하는 브랜치
- release: 이번 출시 버전을 준비하는 브랜치
- hotfix: 출시 버전에서 발생한 버그를 수정 하는 브랜치
3️⃣ Git Flow 사용해보기
🪶 새로운 레포지토리 생성시 초기화
git clone <repository url> 로 클론
git flow init 명령어 입력
master branch → main ( gitlab에서 default )
develop branch → develop (default)
feature branch prefix → feature/ (default)
release branch prefix → release/ (default)
hotfix branch prefix → hotfix/ (default)
support branch prefix → support/ (default)
🪶 새로운 feature branch 생성하여 작업할 때
- git flow featrue start <MYFEATRUE> 로 새로운 feature branch 생성
- 작업 후 commit convention 에 맞게 git commit
- 작업 중에 주기적으로, 3번을 수행하기 전에 아래 rebase 진행
- git flow feature publish <MYFEATURE> 로 feature branch PUSH
- develop branch 로 Merge Request 날리기
- 담당자에게 코드 리뷰 부탁하기
- 로컬 feature branch 삭제
🪶 작업 도중 다른 사람이 publish 한 develop 브랜치를 불러오기
(conflict 줄이기 위해 rebase)
- 다른 작업을 진행한 개발자가 git flow feature publish <HISFEATURE>
- git pull --rebase origin develop 로 나의 브랜치로 PULL
- conflict 발생시 IDE 를 적극 활용해 해결
🪶 작업 완료시 release 브랜치로 배포 준비
- git flow release start 0.1 로 새로운 release branch 생성 및 태그 지정
- git flow release finish 0.1 로 배포 완료
- git push origin master 으로 푸시
- git push origin develop 으로 푸시
🪶 이미 배포한 main 브랜치에서 버그 발생시: hotfix
- git flow hotfix start 0.1 로 기존에 있는 master branch 의 태그 기반 브랜치 생성
- 버그 수정 작업 후 commit
- git flow hotfix finish 0.1 로 핫픽스 해결
4️⃣ 자세히 알아보기
https://jinwoo1990.github.io/git/git-flow-concept/ → git flow 기본 개념 및 명령어
https://jinwoo1990.github.io/git/git-flow-tutorial/ → git flow 사용법 예시 샘플 프로젝트
https://jinwoo1990.github.io/git/git-flow-summary/ → git flow 사용법 요약 및 팁
'Review' 카테고리의 다른 글
흥미로운 SOTA 인공지능 오픈소스들.. (0) | 2022.05.27 |
---|---|
RabbitMQ 메시지 Python 에서 송수신하기 (0) | 2022.05.27 |
패스워드 관리 툴: pass (0) | 2022.05.27 |