git-flow

basic

git-flow 란 무엇인가?

  • git flow는 branch 운용 전략중 하나이다. branching 모델중 하나로써 그 외에도 있다.

브랜치 종류

  • develop
    • 한개만 존재한다.
    • 모든 개발이 여기서 시작된다.
    • 절대로 develop 브랜치에 direct commit을 하지 않는다.
    • feature, release, hotfix 만이 merge가 가능하다.
    • 오직 merge 커밋만 할 수 있다.
  • feature
    • 여러개가 존재한다.
    • develop에서 따져서 나오는 브랜치이다(부모브랜치가 develop)
    • 마음대로 막 만들어도 된다. 단 관계성을 가지려면 develop과 머지 되어야 한다.
    • 따지는 것도, 합치는 것도 모든 것은 develop 이랑만 가능하다.
  • release
    • develop에서 따져서 배포를 기다리는 브랜치이다.
    • 여기서는 새로운 기능 추가는 안된다. 즉 feature와 머지는 전혀 없고, 버그 수정만 가능하다.\n => 완성도를 높이는 작업만 한다.
    • 버그가 수정되었다? -> develop에 무조건 머지 되어야 한다.
  • master
    • release 중에서 bugfix 다 마치고, 실제 배포 버전이다.
    • release, hotfix 하고만 관계가 있다.
  • hotfix
    • 배포중인 코드, 즉 master에 버그가 있어서 급하게 수정해야 할 때 쓴다.
    • 끝나면 master와 develop에 머지해놔야 한다.

정리

1. 요구사항이 온다.
2. develop 브랜치에서 feature 브랜치 하나를 딴다.
3. 개발 완료하면 develop으로 풀리퀘를 보내고 승인받은 후 merge 한다.
4. 배포일자가 다가오면 develop에서 release하나를 딴다.
5. release에서 버그들을 고쳐낸다. 고치고 나면 develop에 머지를 한다.
6. 배포시에는 release에서 master를 따서 배포한다.
7. master에서 버그가 났으면 hotfix를 만들어서 고친다.
8. hotfix에서 버그 수정 끝나면 develop과 master에 반영한다.
효준's profile image

효준

2019-05-27 20:00

다른글 보러가기

스킴링크와 딥링크

이전 포스트

[백엔드-면접] String, StringBuffer, StringBuilder의 차이

다음 포스트