SlideShare une entreprise Scribd logo
1  sur  19
Git Flow
박치원
브랜치 전략
Git Flow
• 2010년에 Vincent Driessen이 작성한
‘A successful Git Branching model’ 라는 글에서 소개된 브랜치 전략
• master, develop, feature, release, hotfix 5가지 브랜치가 존재
브랜치 종류
• master
• develop
• feature
• release
• hotfix
(배포)
(개발)
(기능)
(QA)
(긴급패치)
: 배포 버전이 관리되는 브랜치 (각 버전을 태깅)
: 다음 배포를 위해 뚝딱뚝딱하는 브랜치
: 기능들을 개발하는 브랜치
: 다음 배포에 포함될 기능들이 다 개발되어 배포를 준비하는 브랜치
: 배포한 버전에서 생기는 문제를 해결하는 브랜치
Git Flow의 흐름
개발 진행
• feature는 항상 develop으로부터 생성되고
develop으로만 merge 될 수 있음.
• feature는 작업이 끝난 뒤 삭제됨.
배포 준비, QA
• 개발된 기능들이 develop으로 merge되어
다음 배포를 할 준비가 되면 release 생성
• release에서 버전코드, README 등이 수정
• release에서 발생하는 버그는 release에서 수정되고
수정된 코드가 develop으로 역merge 될 수 있음.
배포
• Release에서 이상이 없으면 master로 merge하고
TAG를 생성해둠.
핫픽스
• 배포한 버전에서 버그가 발생한 경우...
기능 하나를 추가하고
배포를 한다고 가정하면…
1. Feature 생성
2. Develop에 merge
3. Release 생성
4. Master에 merge
5. Develop에 merge
6. Tag 추가
Release에서 배포까지 4단계를 거쳐야한다.
Git-flow Extension
귀찮은 과정을 자동으로!
Command
• git flow init
• git flow feature start {feature_name}
• git flow feature finish {feature_name}
• git flow release {release_name} [base]
• git flow release finish {release_name}
• git flow hotfix start {hotfix_name} [base]
• git flow hotfix finish {hotfix_name}
Source Tree
• 소스트리는 아예 git-flow를 내장하고 있음.
고민해볼 점
Release 브랜치가 꼭 필요할까?
• 수시로 배포가 진행되는 경우
• 안정화 과정이 별로 필요하지 않은 경우
Git Flow는 전략들 중 하나일 뿐.
• Git Flow는 하나의 전략일 뿐 꼭 이대로 할 필요는 없다.
• Github Flow, Gitlab Flow 같은 보다 단순한 전략들도 존재.
우리느은
• 규모가 있는 프로젝트는 대부분 적용할 수 있지 않을까?
• 지난 프로젝트를 생각해보면…
• 알아둬서 나쁠 건 없겠다!
끗!
이야기
시간

Contenu connexe

Tendances (6)

Welcome to Android Studio
Welcome to Android StudioWelcome to Android Studio
Welcome to Android Studio
 
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
Atlassian 및 오픈소스를 이용한 DevOps 구축 - 한국정보컨설팅
 
2022 백엔드 멘토링 자료
2022 백엔드 멘토링 자료2022 백엔드 멘토링 자료
2022 백엔드 멘토링 자료
 
5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스5.yobi를 활용한 개발자 협업 및 배포 프로세스
5.yobi를 활용한 개발자 협업 및 배포 프로세스
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
 
필요해서 하는 개발 자동화
필요해서 하는 개발 자동화필요해서 하는 개발 자동화
필요해서 하는 개발 자동화
 

Similaire à Git flow

Similaire à Git flow (20)

Git command
Git commandGit command
Git command
 
이슈관리 및 브랜치관리
이슈관리 및 브랜치관리이슈관리 및 브랜치관리
이슈관리 및 브랜치관리
 
Git workflow
Git workflowGit workflow
Git workflow
 
140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴140109 팀프로젝트 협업툴
140109 팀프로젝트 협업툴
 
[VCS] VersioningSystem_Designer
[VCS] VersioningSystem_Designer[VCS] VersioningSystem_Designer
[VCS] VersioningSystem_Designer
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발
 
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축
 
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket CloudAtlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
Atlassian cloud 제품을 이용한 DevOps 프로세스 구축: Jira Cloud, Bitbucket Cloud
 
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - TwoseedGit의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
Git의 기초 및 Bitbucket을 이용한 Git 코드 협업 - Twoseed
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
 
Git 코드랩 스터디 3
Git 코드랩 스터디 3Git 코드랩 스터디 3
Git 코드랩 스터디 3
 
30기 정성학 "Git, sourcetree 사용법"
30기 정성학 "Git, sourcetree 사용법"30기 정성학 "Git, sourcetree 사용법"
30기 정성학 "Git, sourcetree 사용법"
 
DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
About Git_2017.08.31 aug 투씨드 (박재석)
About Git_2017.08.31 aug 투씨드 (박재석)About Git_2017.08.31 aug 투씨드 (박재석)
About Git_2017.08.31 aug 투씨드 (박재석)
 
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
14회 jco 컨퍼런스 조대협의 소프트웨어 개발 배포용
 
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)강분도 - 공개SW개발과 우분투 (2010Y10M05D)
강분도 - 공개SW개발과 우분투 (2010Y10M05D)
 

Plus de Wonjun Hwang

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Wonjun Hwang
 

Plus de Wonjun Hwang (20)

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음
 

Git flow

  • 2. Git Flow • 2010년에 Vincent Driessen이 작성한 ‘A successful Git Branching model’ 라는 글에서 소개된 브랜치 전략 • master, develop, feature, release, hotfix 5가지 브랜치가 존재
  • 3. 브랜치 종류 • master • develop • feature • release • hotfix (배포) (개발) (기능) (QA) (긴급패치) : 배포 버전이 관리되는 브랜치 (각 버전을 태깅) : 다음 배포를 위해 뚝딱뚝딱하는 브랜치 : 기능들을 개발하는 브랜치 : 다음 배포에 포함될 기능들이 다 개발되어 배포를 준비하는 브랜치 : 배포한 버전에서 생기는 문제를 해결하는 브랜치
  • 5.
  • 6. 개발 진행 • feature는 항상 develop으로부터 생성되고 develop으로만 merge 될 수 있음. • feature는 작업이 끝난 뒤 삭제됨.
  • 7. 배포 준비, QA • 개발된 기능들이 develop으로 merge되어 다음 배포를 할 준비가 되면 release 생성 • release에서 버전코드, README 등이 수정 • release에서 발생하는 버그는 release에서 수정되고 수정된 코드가 develop으로 역merge 될 수 있음.
  • 8. 배포 • Release에서 이상이 없으면 master로 merge하고 TAG를 생성해둠.
  • 9. 핫픽스 • 배포한 버전에서 버그가 발생한 경우...
  • 10.
  • 11. 기능 하나를 추가하고 배포를 한다고 가정하면… 1. Feature 생성 2. Develop에 merge 3. Release 생성 4. Master에 merge 5. Develop에 merge 6. Tag 추가 Release에서 배포까지 4단계를 거쳐야한다.
  • 13. Command • git flow init • git flow feature start {feature_name} • git flow feature finish {feature_name} • git flow release {release_name} [base] • git flow release finish {release_name} • git flow hotfix start {hotfix_name} [base] • git flow hotfix finish {hotfix_name}
  • 14. Source Tree • 소스트리는 아예 git-flow를 내장하고 있음.
  • 15. 고민해볼 점 Release 브랜치가 꼭 필요할까? • 수시로 배포가 진행되는 경우 • 안정화 과정이 별로 필요하지 않은 경우
  • 16. Git Flow는 전략들 중 하나일 뿐. • Git Flow는 하나의 전략일 뿐 꼭 이대로 할 필요는 없다. • Github Flow, Gitlab Flow 같은 보다 단순한 전략들도 존재.
  • 17. 우리느은 • 규모가 있는 프로젝트는 대부분 적용할 수 있지 않을까? • 지난 프로젝트를 생각해보면… • 알아둬서 나쁠 건 없겠다!
  • 18. 끗!