/git-flow-test

[Done] `$ git flow` 사용 메뉴얼

MIT LicenseMIT

GitHub release (latest by date) GitHub Release Date GitHub last commit (branch) GitHub


GIT FLOW 개념도

시작하기

$ 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 (베타기능)


참고

--no-ff 옵션

develop

1번은 --no-ff 옵션 없이 finish 한 것이다.

  • develop 브랜치에 수정을 가하는 커밋 1개만 존재한다.

ff

2번은 --no-ff 옵션을 넣어 finish 한 것이다.

  • 코드 수정 커밋 + develop 브랜치 Merge 커밋 2개가 존재한다.

no-ff

release 후에 git push

  • Before: develop 브랜치만 push한 경우.
  • After: develop 브랜치 push 후 master bransh push

develop

  • master 브랜치 push 전에는 5번 커밋이 마스터로 머지된 커밋이라는 것을 인식하지 못하는 것 같다.
  • master 브랜치에서 push하면 문제가 해결된다.

GIT Branch bash에서 시각화

A DOG!

$ git log --All --Decorate --Oneline --Graph

래퍼런스