$ git flow init
-
master
- 배포 시 사용하는 브랜치
-
develop
- 개발 단계에서 사용하는 브랜치
-
feature/bugfix
- 새로운 기능/버그 수정시 사용하는 브랜치
$ git flow feature start [기능 이름] ... # 기능 개발/추가 커밋들 ... $ git flow feature finish [기능 이름]
- feature 또는 bugfix를 finish할 경우
- feature -> develop 병합
- 다른 개발자와 feature 내용을 공유하기 위해 원격 저장소에 push 할 때
$ git flow feature publish
-
release
- develop에서 최종 배포(master) 시 사용하는 브랜치
$ git flow release start [릴리즈 버전(ex> v#.0.0)] ... # 최종 배포버전을 위한 버그 수정 커밋들 ... $ git flow release finish [릴리즈 버전]
- release를 finish할 경우
- release -> develop 병합
- release -> master 병합
- release finish한 이후에 develop 브랜치와 master 브랜치 각각
$ git push
를 해주어야 한다. (설명)
-
hotfix
- 배포 중인 서비스를 긴급하게 수정할 때 사용하는 브랜치
$ git flow hotfix start [핫픽스 버전(ex> v1.0.#)] ... # 최종 배포버전을 위한 버그 수정 커밋들 ... $ git flow hotfix finish [핫픽스 버전]
- hotfix finish할 경우
- hotfix -> develop 병합
- hotfix -> master 병합
hotfix finish한 이후에 develop 브랜치와 master 브랜치 각각확인 필요$ git push
를 해주어야 한다. (설명)
-
support(베타기능)
1번은 --no-ff 옵션 없이 finish 한 것이다.
- develop 브랜치에 수정을 가하는 커밋 1개만 존재한다.
2번은 --no-ff 옵션을 넣어 finish 한 것이다.
- 코드 수정 커밋 + develop 브랜치 Merge 커밋 2개가 존재한다.
- Before: develop 브랜치만 push한 경우.
- After: develop 브랜치 push 후 master bransh push
- master 브랜치 push 전에는 5번 커밋이 마스터로 머지된 커밋이라는 것을 인식하지 못하는 것 같다.
- master 브랜치에서 push하면 문제가 해결된다.
A DOG!
$ git log --All --Decorate --Oneline --Graph