git flow 는 특정한 기능이 아니라 전략적인 방법론으로 사용자들 사이에서 정해진 규칙을 말한다.
git flow의 종류는 크게 3가지가 있다.
한 가지 작업을 함께 협업하는 개발자가 많아지고 개발 기간이 늘어날 수록 서로 작은 부분을 나눠서 진행 한 후 합치는 작업이 복잡해진다.
그리고 한 사람이 여러가지 작업을 병렬로 진행하게 되는데 병합 할 떄 또는 이슈 발생 시 어떤 룰이 정해지지 않은 경우 복구하기 위해 개발을 멈추게 되고,
전체 개발 흐름을 맞추기 어려워진다.
그래서 복잡한 개발 프로세스를 반영 할 수 있도록 규칙을 정하여 git 에서 처리 하는 것을 git flow 라고 한다.
git flow
git flow 는 특정한 기능이 아니라 전략적인 방법론으로 사용자들 사이에서 정해진 규칙을 말한다. git flow의 종류는 크게 3가지가 있다.
한 가지 작업을 함께 협업하는 개발자가 많아지고 개발 기간이 늘어날 수록 서로 작은 부분을 나눠서 진행 한 후 합치는 작업이 복잡해진다. 그리고 한 사람이 여러가지 작업을 병렬로 진행하게 되는데 병합 할 떄 또는 이슈 발생 시 어떤 룰이 정해지지 않은 경우 복구하기 위해 개발을 멈추게 되고, 전체 개발 흐름을 맞추기 어려워진다.
그래서 복잡한 개발 프로세스를 반영 할 수 있도록 규칙을 정하여 git 에서 처리 하는 것을 git flow 라고 한다.
git flow 의 종류와 각각의 특성
1. git flow
브랜치
develop -> feature -> develop -> release -> develop -> master(or main)
feature
단위 기능 개발하는 브랜치로 개발 완료하면 develop에 merge
브랜치 나오는 곳 : develop
브랜치 들어가는 곳 : develop
이름 지정 : master, develop, release-, hotfix-를 제외한 어떤 것이든 가능.
origin 이 아닌 개발자 repo 에만 존재
####### 참고 : git repository 구성
local repo 에서 작업 한 후 origin repo 에 push , origin 에서 push 한 브랜치를 upstream repo 로 pull request 생성,
pull request 를 검토 (코드 리뷰 ) 한 후 merge,
다시 새로운 작업을 할 때는 local 에서 upstream repo 를 pull
develop (메인)
개발 브랜치로 각자 작업한 기능을 합친다.
release
배포하기 전 master 브랜치로 합치기 전 QA 검사를 하기 위한 브랜치
브랜치 나오는 곳 : develop
브랜치 들어가는 곳 : develop, master
이름 지정 : release-*
hotfix
master 브랜치에서 버그 발생시 수정하기 위한 브랜치
브런치 나오는 곳 : master
브런치가 들어가는 곳 : develop, master
이름 지정 : hotfix-*
master(메인)
제품 배포 브랜치
git flow 설명
git flow cheatsheet
https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html
시각화된 설명
https://learngitbranching.js.org/index.html?demo=&locale=ko
git flow + intellij plugin 사용
https://ozofweird.tistory.com/entry/Git-%EC%9B%90%EB%8D%B0%EC%9D%B4-Git-flow
설정
git flow 설치
intellij plugin git flow integration 설치
사용
git flow 초기화 (No gitflow로 뜨는 경우)
feature 브랜치 생성하기(개별 기능 개발할때 사용)
release
pull request
pull request 2
2. github flow
git flow 는 github에서 사용하기에는 복잡 하다고 한다. 자동화가 되어있고, 룰이 단순 하다.
브랜치 특성
규칙 :
장점 :
출처 모음