본문으로 건너뛰기

Git Flows

No Flow

No Flow

  • 여러명이 할때 충동이 일어남

Git Flow

Git Flow

  • feature - 개발자 각각
  • develop - 주개발
  • release - 테스트앱(Test Flight)
  • hotfix - 버그 수정
  • master - 마켓 출시

Github Flow

조금 더 쉬워진 Flow

Github Flow

특징

  • anything in the master branch is deployable
    • 전제: 마스터 브랜치는 언제든 어떤 상황이든 배포 가능
  • create descriptive branches off of master
    • user-content-cache-key submodules-init-task redis2-transition
  • push to named branches constantly
    • 팀원의 작업 현황을 확인 할 수 있음
    • 백업 장점
  • open a pull request at any time
    • 코드 리뷰 문화, 커뮤니케이션
  • merge only after pull request review
    • 머지 후에 바로 배포

요약

  • 매우 단순한 브랜치 구조
  • 코드 리뷰 문화
  • CI / CD 배포 자동화 필요
    • Github Actions 활용 추천⭐️(꼭 공부해보기)

그래서?

브랜치명 커스텀

master 👉 main develop 👉 dev feature 👉 feat 본인 닉네임 활용. dev-it/post-list 기능 설명을 한글로도 활용. feat/게시글-목록 release hotfix

Pull Request merge 후에 브랜치 삭제

Github 👉 Repository 👉 Settings 👉 General

After pull requests are merged, you can have head branches deleted automatically.

Untitled

해당 feature 나오기 전에는 Github App Delete merged branch 사용. Github App (Zenhub, Jira, Slack, Sentry …)

로컬 Feature 브랜치 삭제

git fetch -p && for branch in $(git branch -vv | grep ': gone]' | awk '{print $1}'); do git branch -D $branch; done