Git, Git Flow

Git, Git Flow

About Git, Git Flow

Git

  • 분산 버전 관리 시스템
  • 누가 언제, 어떤 부분을 고쳤는지 이력 관리 용이

Technical

  • Remote Repository: 실제 저장소에 있는 소스 코드
  • Local Repository: 현재 자신이 clone한 소스 코드
  • Commit: 소스 코드의 변경 이력
  • Branch: 하나의 기능을 구현하기 위한 특정 커밋들의 모임
  • Chedckout: 특정 브랜치 이동
  • Merge: 특정 브랜치를 다른 브랜치로 병합
  • Clone: Remote Repository에 있는 모든 소스 코드를 Local Repository에 다운받는 일
  • Push: 작업한 커밋을 실제 Remote Repository에 올리는 일
  • Pull: Remote Repository에서 Local Repository로 고친 소스 코드를 다운 받는 일

Git Flow

  • 저장소를 좀 더 효율적으로 관리하기 위한 브랜칭 기법
  • 프로젝트 규모가 커지면서 어디에서 문제가 생겼는지 파악하기 위함
  • 5단계로 나뉜다.(Feature-Develop-Release-Hotfix-Master)

Branches

  1. Feature
  • 새로운 기능을 추가하는 브랜치
  • 기능 구현이 완료되면 Develop 브랜치로 merge
  • merge할 때, --no-of옵션을 주면 히스토리를 남길 수 있음
  1. Develop
  • Master 브랜치와 마찬가지로 추가적으로 생성 또는 삭제되지 않는 브랜치
  • 개발이 진행중인 브랜치
  1. Release
  • 실제 프로젝트를 배포하기 위한 브랜치
  1. Hotfix
  • Master 브랜치에서 예상하지 못한 버그가 있을 경우, 급히 수정하는 브랜치
  • 이 브랜치는 Develop, Master로 merge됨
  1. Master
  • 언제든지 배포가 가능한 브랜치
  • 실제 서비스되는 최종 브랜치

Install

brew install git-flow-avh //mac OS

Command (자주 사용하게 될 명령어)

  1. 초기화
    git flow init
    
  2. feature branch 생성(실제 이름만 넣어주면 자동으로 feature-*로 생성해줌)
    git flow feature start MYFEATURE
    
  3. feature branch merge(develop branch로 merge되면서 feature branch는 삭제됨)
    git flow feature finish MYREATURE
    

Irobo 작업 순서

  1. git flow init (맨 처음 한 번만)
  2. git flow feature start MYFEATURE (구현하고자 하는 기능에 맞게 branch 생성)
  3. git commit
  4. git push origin feature/MYFEATURE (Remote Repository에 push)
  5. pull-request 열기 후 merge(PR은 develop 브랜치!!)
  6. 완료되었다면, git flow feature finish NTFEATURE

댓글

가장 많이 본 글