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
- Feature
- 새로운 기능을 추가하는 브랜치
- 기능 구현이 완료되면 Develop 브랜치로 merge
- merge할 때,
--no-of옵션을 주면 히스토리를 남길 수 있음
- Develop
- Master 브랜치와 마찬가지로 추가적으로 생성 또는 삭제되지 않는 브랜치
- 개발이 진행중인 브랜치
- Release
- Hotfix
- Master 브랜치에서 예상하지 못한 버그가 있을 경우, 급히 수정하는 브랜치
- 이 브랜치는 Develop, Master로 merge됨
- Master
- 언제든지 배포가 가능한 브랜치
- 실제 서비스되는 최종 브랜치
Install
brew install git-flow-avh //mac OS
Command (자주 사용하게 될 명령어)
-
초기화
git flow init
-
feature branch 생성(실제 이름만 넣어주면 자동으로 feature-*로 생성해줌)
git flow feature start MYFEATURE
-
feature branch merge(develop branch로 merge되면서 feature branch는 삭제됨)
git flow feature finish MYREATURE
Irobo 작업 순서
git flow init (맨 처음 한 번만)
git flow feature start MYFEATURE (구현하고자 하는 기능에 맞게 branch 생성)
git commit
git push origin feature/MYFEATURE (Remote Repository에 push)
- pull-request 열기 후 merge(PR은 develop 브랜치!!)
- 완료되었다면,
git flow feature finish NTFEATURE
댓글
댓글 쓰기