Contents
도구 사용 법‣
정의
flow:흐름이라는 의미를 가지고 있다
즉 git flow는 git에서 제공하는 브랜치 기능을 활용한 변경 이력 관리 전략
브랜치 5가지로 나누기
- main(master):
서비스를 직접 배포하는 역할을 하는 브랜치입니다.
- feature(기능):
각 기능 별 개발 브랜치입니다.
- develop(개발):
feature에서 개발된 내용을 가지고 있는 브랜치입니다.
- release(배포):
배포를 하기 전 내용을 QA(품질 검사) 하기 위한 브랜치입니다.
- hotfix(빨리 고치기):
main 브랜치로 배포를 하고 나서 버그가 생겼을 때 빨리 고치기 위한 브랜치입니다.

큰틀은 저렇고 세부적으로는 팀마다 자유롭게 정하면 된다.
현재 우리는 축약해서 크게 보면 각 이니셜/기능으로 브랜치를 파서 작업하고 dev로 merge하는 형식으로 하고있는데
이번 git flow를 적용해보면
작업 할 때(feature) :feat/{기능명_이름}으로 브랜치명을 적용 할 수 있겠다.
배포전 통합 테스트 할 때(release): release에서 작업 해서 테스트 완료되면
배포(main): main 브렌치에 머지해서 API문서 작업 및 배포를 실행하면 되겠다.
브랜치를 분류하는 이유
협업중 수정된 코드의 충돌을 방지하기 위해
- 가정

만약 완독률 계산하는 로직이 박선규, 김주혁 둘다 필요해 같은 브랜치에서 같은 부분을
수정할 경우 충돌이 날 수 밖에 없다.
- 충돌 해결법
이 부분을 줄이기 위해 각자 하위 브랜치를 파서 각자의 코드를 작성한 후 한명이 먼저 상위 브랜치에 병합하고 다른 한명이 병합된 상위 브랜치에서 하위브랜치를 파서 코드를 작성하면 충돌이 나지 않을 수 있다.
- 우리 프로젝트 적용
하나 하나 기다리면 작업시간이 효율적이지 않으니
작업 시간을 효율적으로 관리하기 위해, 각자 상위 브랜치에서 하위 브랜치를 생성해 작업을 진행한다. 작업이 완료된 후, 상위 브랜치를 하위 브랜치에 먼저 병합하여 수정된 부분에서 발생할 수 있는 충돌을 해결한다. 이후 상위 브랜치에 병합함으로써, 상위 브랜치에서는 보다 안전하게 코드를 관리할 수 있다.
도구 사용 법
‣
아직까지는 진짜 왜쓰는지 모르겠다 수동이랑 차이점을 모르겠다.
‣
// wget 설치 choco install wget //git flow 설치 wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash //설치 확인 git flow version
.

git-flow init
git flow init
프로덕션 릴리즈 브랜치 정하기 :배포용 브랜치
이거 원래 git
1. Git Flow 초기화
현재
dev
브랜치를 기본 브랜치로 사용하고 있는 상황에서, Git Flow를 초기화하고 나중에 main
브랜치를 생성하여 프로덕션 릴리스를 관리합니다.Git Flow 초기화 명령어 실행
bash코드 복사 git flow init
초기화 과정에서 브랜치 설정
프로덕션 릴리스 브랜치를 나중에
main
으로 사용할 예정이라면 다음과 같이 입력합니다:
Branch name for production releases: main
Branch name for "next release" development: dev
2. 기능 브랜치에서 작업
팀원들은 각자의 기능 브랜치를 생성하여 작업을 진행합니다:
git checkout dev git flow feature start feature-branch-name
3. 기능 브랜치 병합
기능 브랜치에서 작업이 완료되면
dev
브랜치에 병합합니다:git flow feature finish feature-branch-name
4. main
브랜치 생성 및 초기 커밋 병합
모든 기능이
dev
브랜치에 병합된 후, 프로덕션 릴리스를 위한 main
브랜치를 생성합니다:git checkout dev git checkout -b main git push -u origin main
5. 릴리스 준비 및 병합
main
브랜치를 생성한 후, 릴리스 준비가 완료되면 dev
브랜치의 최신 변경 사항을 main
브랜치에 병합합니다:git checkout main git merge dev
6. 원격 저장소에 푸시
최종적으로
main
브랜치를 원격 저장소에 푸시합니다:git push origin main
요약된 단계
- Git Flow 초기화:
git flow init
실행 및 설정
- 기능 브랜치 생성 및 작업:
git flow feature start <feature-branch>
- 기능 브랜치 병합:
git flow feature finish <feature-branch>
main
브랜치 생성:git checkout -b main
main
브랜치에 병합:git merge dev
- 원격 저장소에 푸시:
git push origin main
이 과정을 통해
dev
브랜치를 사용하여 개발 작업을 진행하고, main
브랜치를 통해 프로덕션 릴리스를 관리할 수 있습니다.깃 플로우 단점:
feature 브랜치에서 dev브랜치로 병합을하면 feature는 자동으로 삭제가 된다.
Issue 사용하는 방법 블로그
‣
Issue를 사용하는 이유와 예시 블로그
‣
Linked pull requests : PR 중 이슈와 연결되는 브랜치 작업을 선택할 수 있습니다.


commit message가 입력한대로 올라온 것을 확인할 수 있습니다. base branch를 develop 브랜치로 변경하고 Create pull request를 누른다.
merge 후 이슈 닫기까지


Share article