Skip to content

git flow

Jin edited this page Oct 27, 2020 · 1 revision

git-flow

  • git-flow를 잘 몰라서 git-flow를 학습하였습니다.

  • git-flow의 브랜치

    • master : 제품으로 출시될 수 있는 브랜치
    • develop : 다음 출시 버전을 개발하는 브랜치
    • feature : 기능을 개발하는 브랜치
    • release : 이번 출시 버전을 준비하는 브랜치
    • hotfix : 출시 버전에서 발생한 버그를 수정 하는 브랜치
  • git-flow의 진행과정

      1. master와 develop 브랜치가 존재합니다.
      1. develop는 새로운 기능 추가 브랜치가 있을 경우 develop에서 feature 브랜치를 생성합니다.
      1. feature가 다 개발이 될 경우 develop에 merge(pull request)를 진행합니다.
      1. develop 브랜치에서 release 브랜치로 QA를 진행합니다.
      1. release 브랜치에서 QA를 진행이 완료되면 develop 브랜치와 master 브랜치에 merge합니다.
  • Repositories

    • upstream (Upstream Repository)
    • origin (Origin Repository)
  • Branches

    • feature-user (사용자 관련 기능을 구현하는 feature branch)
    • bfm-100_login_layout (사용자 관련 기능 중 레이아웃 작업 branch)
  1. upstream/feature-user 브랜치에서 작업 브랜치(bfm-100_login_layout)를 생성합니다. (feature-user)]gitfetchupstream(feature−user)] git checkout -b bfm-100_login_layout --track upstream/feature-user

  2. 작업 브랜치에서 소스코드를 수정합니다. (뚝딱뚝딱 🔨)

  3. 작업 브랜치에서 변경사항을 커밋합니다. (보통은 vi editor에서 커밋 메세지를 작성 함)

    • (bfm-100_login_layout)]$ git commit -m “BFM-100 로그인 화면 레이아웃 생성”
  4. 만약 커밋이 불필요하게 어려 개로 나뉘어져 있다면 squash를 합니다. (커밋 2개를 합쳐야 한다면)

    • squash란 여러 개의 커밋 메시지를 하나로 합치게 해주는 명령어
    • squash란 명령은 따로 없고, 다음의 명령어를 통해서 하나로 합쳐줌
    • squash관련 문서
    • (bfm-100_login_layout)]$ git rebase -i HEAD~2
  5. 작업 브랜치를 upstream/feature-user에 rebase합니다.

    • git pull --rebase == git fetch + git rebase
    • git pull == git fetch + git merge
    • (bfm-100_login_layout)]$ git pull --rebase upstream feature-user
  6. 작업 브랜치를 origin에 push합니다.

    • (bfm-100_login_layout)]$ git push origin bfm-100_login_layout
  7. Github에서 bfm-100_login_layout 브랜치를 feature-user에 merge하는 Pull Request를 생성합니다.

    • 같은 feature를 개발하는 동료에게 리뷰 승인을 받은 후 자신의 Pull Request를 merge합니다. 만약 혼자 feature를 개발한다면 1~2명의 동료에게 리뷰 승인을 받은 후 Pull
    • Request를 merge합니다.

Overview

🏠Home

📖 Api docs

😄일일 회의록
😠일일 회고
😢주간 회고
👼데일리 스크럼
☔데모
🍵피어세션
📖 학습공유
🔥 Trouble Shooting
🍰 우리의 코드 돌아보기
Clone this wiki locally