티스토리 뷰
먼저, 관련 링크.
git flow 도구를 바로 사용할 수도 있지만,
빈센트가 얘기하는 각 브랜치의 특징에 대해 미리 알아두는 게 좋다.
기본 브랜치
- master : 최종 릴리즈한 안정된 버전
- develop : 다음 릴리즈를 위한 개발 중인 최신 빌드
위 두 브랜치는 계속 존재한다.
아래 브랜치는 필요할 때 생성했다 master 나 develop 브랜치로 머지하고 삭제하는,
이벤트 성격의 브랜치이다.
- feature : 특정한 기능을 위한 브랜치
- develop 브랜치에서부터 가져오며, 다시 develop 브랜치로 머지한다.
- develop 브랜치 이외의 브랜치와는 머지하지 않는다.
- 일반적으로 개발자의 로컬에서만 유지하고 origin 에 푸시하지 않는다.
- develop 브랜치에 머지하면 feature 브랜치는 삭제한다.
- release : 릴리즈 점검을 위한 브랜치
- develop 브랜치에서 가져오며, develop 과 master 브랜치로 머지한다.
- release-* 형태로 이름을 짓는다. 예를 들어, 다음 릴리즈 버전이 1.2라면, release-1.2 라고 한다.
- 브랜치를 생성한 후, 소스 코드 내에 버전과 관련된 값을 수정하고 커밋한다.
- 다음 릴리즈까지 개발이 최종 완료되었다고 판단하는 시점에서 브랜치를 생성한다.
- 릴리즈 대상이 되는 feature 는 미리 develop에 머지되어 있어야 하고,
다음에 릴리즈할 feature 라면 develop에 머지되어 있으면 안된다.
- release 브랜치를 생성한 이후의 버그 픽스는, develop 이 아닌 release 브랜치에서 진행한다.
- 릴리즈가 모두 준비되었다고 생각하면, release 브랜치를 master 에 머지한다.
- master 브랜치에서 해당 버전으로 태그를 생성한다.
- release 브랜치에서 버그 픽스한 것들을 develop 브랜치로 머지한다.
- release 가 종료되면, release 브랜치를 삭제한다.
- hotfix : 긴급 버그 픽스를 위한 브랜치
- master 에서 가져오며, master 와 develop 브랜치로 머지한다.
- hotfix-* 형태로 이름을 짓는다.
- release 브랜치와 사용 방법은 동일하지만, 예상치 못한 긴급 버그 수정을 위해 사용한다.
- release 와 마찬가지로, 소스 코드 내 버전 정보를 업데이트 한다.
- 작업이 완료되면, master 에 머지하고 버전을 태그로 남긴다.
- 수정 사항을 develop 브랜치로 머지한다.
만약, release 브랜치가 이미 존재하면, develop이 아닌 release 브랜치로 머지한다.
- 핫픽스가 종료되면 브랜치를 삭제한다.
몇 가지 주의할 점은 다음과 같다.
- 브랜치를 머지할 때 --no-ff 옵션을 쓴다.
fast forward 머징을 하지 않고, 머지 커밋을 생성하겠다는 의미다.
머징 히스토리를 유지하기 위함이다.
- 가능하다면 버전 정보는 소스 코드 내에서 직접 작성하지 않는다.
버전과 관련된 정보를 찾아 현재 버전으로 업데이트하는 스크립트를 작성하자.
위와 같이 브랜치를 직접 생성하고 삭제해서 사용할 수도 있지만,
쉽게 사용할 수 있도록 도구를 만들어뒀고, 그게 git flow 이다.
맥에서는 brew 나 MacPort 로 인스톨 할 수 있다.
$ brew install git-flow
자세한 내용은 gitflow github 을 참고하면 되고,
각 커맨드에 대한 간단한 설명은 다음과 같다.
$ git flow init
git 저장소를 초기화하고 master, develop 브랜치를 생성한다.
$ git flow feature start iss51
develop 브랜치로부터 feature/iss51 란 이름의 브랜치를 따오고 체크아웃한다.
$ git flow feature finish iss51
feature/iss51 브랜치를 develop 브랜치에 머지하고, 브랜치를 삭제한다.
$ git flow feature track iss70
이미 origin 에 존재하는 feature/iss70 브랜치를 가져오고 체크아웃한다.
출처 : http://ohgyun.com/402
'프로그래밍' 카테고리의 다른 글
Git 서버 - SSH 공개키 만들기 (0) | 2015.08.20 |
---|---|
Spring 3.0 환경설정 (0) | 2014.04.02 |
[android] xml에 특수문자 사용하기 (0) | 2014.03.18 |
[android] 라이브러리 프로젝트 (0) | 2014.02.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 아이콘 사이즈
- 막국수
- Xcode
- ShardPreferenes
- git flow
- Re:NK
- resize
- custom font
- gitgub
- ListView
- 남자화장품
- android jar
- Android
- 참나무숯불닭갈비
- crop
- 가평휴게소
- serialize
- cocoapods
- 안드로이드 라이브러리
- 휴게소
- 안드로이드
- 코드 하이라이트
- 킹스맨
- xcode7
- 봄봄봄
- keyboard
- xcode8
- ios
- 리엔케이
- 엘지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함