안녕세계
[Git] git-flow 사용법 (git-flow cheatsheet) 본문
[Git] git-flow 사용법 (git-flow cheatsheet)
Junhong Kim 2018. 4. 11. 18:16728x90
반응형
git-flow란?
Vincent Driessen
의 브랜칭 모델을 적용하여 고수준으로 저장소를 관리하기 위한 git의 확장
개념입니다.
(Git GUI 프로그램인 SourceTree에서는 git-flow를 지원합니다.)
git-flow 시작하기
설치
MacOS에서는 homebrew
를 사용하여 git-flow 브랜치 관리 전략을 손 쉽게 사용할 수 있습니다.
먼저 homebrew를 사용하여 git-flow-avh
를 설치합니다. (homebrew 사용 방법 알아보기)
git-flow-avh를 설치하면 flow
명령어를 사용할 수 있습니다.
$ brew install git-flow-avh
초기 설정 (flow init -d)
flow init -d 명령어는 로컬 저장소에 develop 브랜치를 생성한 뒤 해당 브랜치로 checkout 합니다.
$ git flow init -d
Using default branch names.
Which branch should be used for bringing forth production releases?
- master
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
명령어
$ git flow <feature | release | hotfix> <start | finish> <branch_name>
feature: 특정 기능을 개발/수정할 때 사용되는 브랜치
release: 배포시 사용되는 브랜치
hotfix: 서비스 되고 있는 소스(master 브랜치)의 문제를 해결후 병합(merge)해야할 때 사용되는 브랜치
사용예시
start: 새로운 브랜치 생성
# 기능 개발 시작 (feature/<branch_name> 브랜치 생성)
$ git flow feature start <branch_name>
# 배포 시작 (release/<branch_name> 브랜치 생성 및 해당 브랜치)
$ git flow release start <branch_name>
# 수정 배포 시작 (hotfix/<branch_name> 브랜치 생성 및 tag 설정)
$ git flow hotfix start <branch_name>
finish: 브랜치 병합후 해당 브랜치 삭제
# 기능 개발 완료 (develop ← feature 병합후 브랜치 삭제)
$ git flow feature finish <branch_name>
# 배포 (master ← release 병합후 브랜치 삭제 및 tag 설정)
$ git flow release finish <version_name>
# 수정 배포 (master ← hotfix 병합후 브랜치 삭제 및 tag 설정)
$ git flow hotfix finish <version_name>
프로젝트 적용
최초 적용 개발자
git-flow 초기 설정후 원격 저장소에 연결 합니다.
$ git clone <remote_url>
$ git flow init -d
# 원격 저장소에 develop 브랜치 생성
$ git push origin develop
# upstream 설정, 이제 git push 명령어로 develop 브랜치로 소스를 업로드할 수 있습니다.
$ git branch --set-upstream-to=origin/develop develop
git-flow가 적용된 프로젝트를 복제(clone)하는 개발자
원격 저장소 연결
$ git clone <remote_url>
$ git checkout -b develop origin/develop
$ git flow init -d
git-flow 사용
특정 기능(feature) 개발시
$ git flow feature start <branch_name>
# 개발 완료 후
$ git flow feature finish <branch_name>
# 원격 저장소 반영
$ git push origin master
개발후 배포(release) 시기
$ git flow release start <version_name>
$ git flow release finish <version_name>
$ git push origin master
$ git push --tags
728x90
반응형
'Git' 카테고리의 다른 글
[Git] git 사용법 (git cheatsheet) (0) | 2018.04.11 |
---|---|
[Git] Github Gist란? (0) | 2018.02.12 |
[Git] 안드로이드 스튜디오(Android Studio)에서 Github으로 협업하기 (0) | 2017.01.04 |
[Git] 웹스톰(Webstrom)에서 Github으로 프로젝트 올리기 (0) | 2016.10.14 |
Comments